CN107070983A - 一种基于地址转发的负载均衡方法、设备和系统 - Google Patents
一种基于地址转发的负载均衡方法、设备和系统 Download PDFInfo
- Publication number
- CN107070983A CN107070983A CN201710058718.XA CN201710058718A CN107070983A CN 107070983 A CN107070983 A CN 107070983A CN 201710058718 A CN201710058718 A CN 201710058718A CN 107070983 A CN107070983 A CN 107070983A
- Authority
- CN
- China
- Prior art keywords
- server
- load
- address
- data message
- balancing device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Abstract
本发明提供一种基于地址转发的负载均衡方法、设备和系统,应用于包含一个负载均衡设备和多个服务器的集群,每个服务器连接至负载均衡设备,其中方法包括:负载均衡设备接收第一数据报文并获取标识信息,根据标识信息查找第一列表中是否存在标识信息和服务器的对应关系,如果存在,则将与标识信息对应的服务器作为第一目标服务器,并获得第二数据报文,根据第一目标服务器地址将第二数据报文转发至第一目标服务器;接收第一目标服务器发送的第二数据报文对应的第一响应报文,并获得第二响应报文,将第二响应报文外发。利用本发明,可以将特定客户端一次业务请求的多次数据报文转发到相应的或同一个服务器,保证客户端业务状态的连续性。
Description
技术领域
本发明涉及一种电子技术领域,尤其涉及一种基于地址转发的负载均衡方法、设备和系统。
背景技术
为了实现网络服务的可伸缩性和高可用性,服务的集群部署成为了必然选择,这种松耦合的结构能够提高更为高效的网络服务,大大降低了管理成本和价格花销,同时也提高了对应灾变的能力。集群部署的一个关键技术就是负载均衡,选择适合的负载均衡策略能够使集群的效能发挥到最大。目前负载均衡再使用设备上区分为硬件负载和软件负载,硬件负载由专门的供应商来提供,成本较高,但是有较强的稳定性和性能,软件负载主要包括http重定向、DNS负载、反向代理负载、网路地址转换(NAT)负载、直接路由和IP隧道几种实现。
为了均衡提供服务,通常的负载均衡算法都是无状态的,然而在某些特殊的业务(例如金融交易服务等)对于数据交互的连续性有要求,即在处理一个客户交易请求的时候需要交互多次,在多次交互中出于安全原因的考虑,必须将交易请求和数据负载到同一个服务器。这就要求保障业务状态的连续性。
发明内容
本发明旨在解决上述问题之一。
本发明的主要目的在于提供一种基于地址转发的负载均衡方法。
本发明的另一目的在于提供一种基于地址转发的负载均衡设备。
本发明的又一目的在于提供一种基于地址转发的负载均衡系统。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明一方面提供了一种基于地址转发的负载均衡方法,应用于包含一个负载均衡设备和多个服务器的集群,每个服务器连接至所述负载均衡设备,所述方法包括:负载均衡设备接收第一数据报文,所述第一数据报文中至少包括第一源地址、第一目的地址和标识信息,其中,所述第一目的地址为所述负载均衡设备的对外地址,所述标识信息用于唯一标识发送所述第一数据报文的客户端;所述负载均衡设备根据所述第一数据报文获取所述标识信息,根据所述标识信息查找第一列表中是否存在所述标识信息和服务器的对应关系;如果第一列表中存在所述标识信息和服务器的对应关系,则所述负载均衡设备将与所述标识信息对应的服务器作为第一目标服务器,获取第一目标服务器地址,将所述第一数据报文中的第一源地址修改为所述负载均衡设备的对内地址,将所述第一数据报文中的第一目的地址修改为所述标识信息对应的第一目标服务器地址,获得第二数据报文;所述负载均衡设备根据所述第一目标服务器地址将所述第二数据报文转发至第一目标服务器;所述负载均衡设备接收所述第一目标服务器发送的所述第二数据报文对应的第一响应报文,所述第一响应报文是所述第一目标服务器解析所述第二数据报文后进行处理生成的,其中,所述第一响应报文中至少包括第二源地址和第二目的地址,所述第二目的地址为所述负载均衡设备的对内地址;所述负载均衡设备将所述第一响应报文中的所述第二源地址修改为所述负载均衡设备的对外地址,将所述第一响应报文中的第二目的地址修改为所述第一源地址,获得第二响应报文,并将所述第二响应报文外发。
此外,方法还包括:如果第一列表中不存在所述标识信息和服务器的对应关系,则所述负载均衡设备根据预先设定的负责均衡策略选择所述集群中的一个服务器作为所述标识信息对应的服务器,将被选择的与所述标识信息对应的服务器作为第二目标服务器,并将所述标识信息和所述第二目标服务器的对应关系记入所述第一列表;所述负载均衡设备将所述第一数据报文中的第一目的地址修改为所述第二目标服务器的地址,将所述第一数据报文中的第一源地址修改为所述负载均衡设备的对内地址,获得第三数据报文;所述负载均衡设备根据所述第二目标服务器地址将所述第三数据报文转发至所述第二目标服务器;所述负载均衡设备接收所述第二目标服务器发送的所述第三数据报文对应的第三响应报文,所述第三响应报文是所述第二目标服务器解析第三数据报文后进行处理生成的,其中,所述第三响应报文中至少包括第三源地址和第三目的地址,所述第三目的地址为所述负载均衡设备的对内地址;所述负载均衡设备将所述第三响应报文中的所述第三源地址改为所述负载均衡设备的对外地址,将所述第三响应报文中的第三目的地址修改为所述第一源地址,获得第四响应报文,并将所述第四响应报文外发。
此外,所述负载均衡设备还存储有第二列表,所述第二列表中存储所述集群中每个服务器的可连接数。
此外,所述方法还包括:所述负载均衡设备在预设时间间隔接收所述集群中每个服务器发送的可连接数,并将所述每个服务器发送的可连接数更新至所述第二列表。
此外,在所述负载均衡设备根据所述第二目标服务器地址将所述第三数据报文转发至所述第二目标服务器之后,所述方法还包括:所述负载均衡设备将所述第二目标服务器的可连接数减少一个。
此外,所述第一数据报文中包含了交互状态信息;所述方法还包括:所述负载均衡设备还根据所述第一数据报文获取所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则所述负载均衡设备将所述第一目标服务器的可连接数增加一个;或者
所述第一数据报文中包含了交互状态信息;所述方法还包括:所述负载均衡设备接收所述服务器解析所述第二数据报文后获得并发送的所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则所述负载均衡设备将所述第一目标服务器的可连接数增加一个;或者
所述第一响应报文中包含了交互状态信息;所述方法还包括:所述负载均衡设备还根据所述第一响应报文获取所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则所述负载均衡设备将所述第一目标服务器的可连接数增加一个。
此外,所述负载均衡设备根据所述第一数据报文获取所述标识信息,根据所述标识信息查找第一列表中是否存在所述标识信息和服务器的对应关系包括:所述负载均衡设备根据所述第一数据报文获取所述标识信息,对所述标识信息进行不可逆运算获得第一运算值,判断第一列表中是否存在所述第一运算值和服务器的对应关系。
本发明另一方面还提供一种基于地址转发的负载均衡设备,所述负载均衡设备连接至多个服务器,所述负载均衡设备与所述多个服务器形成一个集群,包括第一接口、第二接口、查找单元和转发单元:所述第一接口,用于接收第一数据报文,所述第一数据报文中至少包括第一源地址、第一目的地址和标识信息,其中,所述第一目的地址为所述负载均衡设备的对外地址,所述标识信息用于唯一标识发送所述第一数据报文的客户端;所述查找单元,用于根据所述第一数据报文获取所述标识信息,根据所述标识信息查找第一列表中是否存在所述标识信息和服务器的对应关系;所述转发单元,在第一列表中存在所述标识信息和服务器的对应关系时,用于将与所述标识信息对应的服务器作为第一目标服务器,获取第一目标服务器地址,将所述第一数据报文中的第一源地址修改为所述负载均衡设备的对内地址,将所述第一数据报文中的第一目的地址修改为所述标识信息对应的第一目标服务器地址,获得第二数据报文;所述第二接口,用于根据所述第一目标服务器地址将所述第二数据报文转发至第一目标服务器,并接收所述第一目标服务器发送的所述第二数据报文对应的第一响应报文,所述第一响应报文是所述第一目标服务器解析所述第二数据报文后进行处理生成的,其中,所述第一响应报文中至少包括第二源地址和第二目的地址,所述第二目的地址为所述负载均衡设备的对内地址;所述转发单元,还用于将所述第一响应报文中的所述第二源地址修改为所述负载均衡设备的对外地址,将所述第一响应报文中的第二目的地址修改为所述第一源地址,获得第二响应报文;所述第一接口,还用于将所述第二响应报文外发。
此外,当第一列表中不存在所述标识信息和服务器的对应关系时,所述转发单元还用于根据预先设定的负责均衡策略选择所述集群中的一个服务器作为所述标识信息对应的服务器,将被选择的与所述标识信息对应的服务器作为第二目标服务器,并将所述标识信息和所述第二目标服务器的对应关系记入所述第一列表;并将所述第一数据报文中的第一目的地址修改为所述第二目标服务器的地址,将所述第一数据报文中的第一源地址修改为所述负载均衡设备的对内地址,获得第三数据报文;所述第二接口,还用于根据所述第二目标服务器地址将所述第三数据报文转发至所述第二目标服务器,并接收所述第二目标服务器发送的所述第三数据报文对应的第三响应报文,所述第三响应报文是所述第二目标服务器解析第三数据报文后进行处理生成的,其中,所述第三响应报文中至少包括第三源地址和第三目的地址,所述第三目的地址为所述负载均衡设备的对内地址;所述转发单元,还用于将所述第三响应报文中的所述第三源地址改为所述负载均衡设备的对外地址,将所述第三响应报文中的第三目的地址修改为所述第一源地址,获得第四响应报文;所述第一接口,还用于将所述第四响应报文外发。
此外,所述负载均衡设备还包括连接控制单元;所述连接控制单元,用于存储第二列表,所述第二列表中存储所述集群中每个服务器的可连接数。
此外,所述连接控制单元,用于在预设时间间隔接收所述集群中每个服务器发送的可连接数,并将所述每个服务器发送的可连接数更新至所述第二列表。
此外,在所述第二接口根据所述第二目标服务器地址将所述第三数据报文转发至所述第二目标服务器之后,所述连接控制单元,还用于将所述第二目标服务器的可连接数减少一个。
此外,所述第一数据报文中包含了交互状态信息;所述连接控制单元,还根据所述第一数据报文获取所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则所述第一目标服务器的可连接数增加一个;或者
所述第一数据报文中包含了交互状态信息;所述连接控制单元,还接收所述服务器解析所述第二数据报文后获得并发送的所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则将所述第一目标服务器的可连接数增加一个;或者
所述第一响应报文中包含了交互状态信息;所述连接控制单元,还根据所述第一响应报文获取所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则将所述第一目标服务器的可连接数增加一个。
此外,所述查找单元根据所述第一数据报文获取所述标识信息,根据所述标识信息查找第一列表中是否存在所述标识信息和服务器的对应关系包括:所述查找单元根据所述第一数据报文获取所述标识信息,对所述标识信息进行不可逆运算获得第一运算值,判断第一列表中是否存在所述第一运算值和服务器的对应关系。
本发明另一方面又一种基于地址转发的负载均衡系统,其特征在于,包括至少一个客户端、至少一个服务器和如权利要求8-14所述的负载均衡设备,其中:所述客户端通过网络发送所述第一数据报文,并通过网络接收所述第二响应报文;所述服务器接收所述负载均衡设备发送的所述第二数据报文,对所述第二数据报文进行解析,对解析后的第二数据报文进行处理,获得所述第一响应报文,并将所述第一响应报文发送至所述负载均衡设备。
由上述本发明提供的技术方案可以看出,本发明提供了一种基于地址转发的负载均衡方法、设备和系统,利用本发明提供的方法,可以将特定客户端一次业务请求的多次数据报文转发到相应的或同一个服务器,保证客户端业务状态的连续性,有利于保护客户交易的安全性。且基于地址转发的负载均衡算法对负载均衡设备没有特殊的要求,配置比较简单,易于实现。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例1提供的负载均衡方法的流程图;
图2为本发明实施例1提供的包含一个集群的负载均衡系统结构示意图。
图3为本发明实施例1提供的包含多个集群的负载均衡系统结构示意图。
图4为本发明实施例1提供的又一种负载均衡方法的流程图。
图5为本发明实施例2提供的负载均衡设备结构示意图。
图6为本发明实施例3提供的负载均衡系统结构示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或数量或位置。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面将结合附图对本发明实施例作进一步地详细描述。
本发明基于一种负载均衡系统,该系统中包括至少一个客户端和至少一个集群,每个集群中包括一个负载均衡设备和多个真实的服务器,每个服务器连接至负载均衡设备。当客户通过客户端发起一次交易时,客户端通过所在网关对外网卡访问网络服务,并将数据报文通过网络传输到负载均衡设备,负载均衡设备根据连接调度算法从多个与其连接的真实服务器中选出一台服务器,将数据报文的目标地址改写成选定服务器的地址(必要时还修改端口),最后将修改后的报文发送给选出的服务器。同时,负载均衡设备记录此次客户端连接对应的服务器,在一次交易流程中,当同一个客户端的下一个报文到达时,负载均衡设备将数据报文的目标地址改写成选定的同一个服务器的地址,并将修改后的报文发送给同一个服务器。
当存在多个集群的情况下,系统中还可能包括一个负载均衡总设备,该负载均衡总设备连接各个集群,用于根据调度算法将接收到的数据报文负载到选中的集群。当然,在需要的情况下,可以布置更多层级的负载均衡设备。
实施例1
本实施例提供一种基于地址转发的负载均衡方法,应用于包含一个负载均衡设备和多个服务器的集群,每个服务器连接至负载均衡设备,如图1所示,该方法包括:
步骤S101,负载均衡设备接收第一数据报文,第一数据报文中至少包括第一源地址、第一目的地址和标识信息,其中,第一目的地址为负载均衡设备的对外地址,标识信息用于唯一标识发送第一数据报文的客户端。
具体来说,该客户端可以是用户的个人电脑、手机、智能手环等具有网络通信功能的设备。客户端通过网络最终向负载均衡设备发送第一数据报文,当然,该客户端可能直接接入到互联网,也可能通过局域网接入到互联网。当客户端通过网络直连到负载均衡设备时,该第一数据报文中包括的第一源地址即为客户端的地址,该第一目的地址即为负载均衡设备的对外地址。但是在实际的网络传输过程中,客户端更可能通过一系列网络设备(网关、路由器、防火墙等)才能将数据报文发送至负载均衡设备,此时,客户端发送到数据报文中的目的地址应当为下一设备的地址,而负载均衡设备最终接收的数据报文中的源地址应当为上一设备的地址。可见,客户端发送的第一数据报文可能在网络传输过程中经过转发设备的一些更改(例如更改数据报文头以便于传输等)。而标识信息是能够唯一地标识客户端身份的信息,其可能为客户端的MAC地址、IP地址、IP地址与端口号的结合、或其他可以唯一标识客户端身份的信息,当然,在某些情况下,可以利用客户端的地址来唯一的标识该客户端的身份,此时第一源地址可能作为标识信息。此时,第一源地址为客户端的地址,当标识信息也采用客户端的地址时,第一数据报文中标识信息是可选的,也可以没有,后续负载均衡设备可以从第一源地址中获得标识信息。
在本发明的实施例中,负载均衡设备具有两个地址,其对外的地址用于互联网上的寻址,接收数据报文并对外发送数据;而对内的地址用于标识其在集群内部的身份,在集群内部进行数据的转发。基于其具有两个地址,其在物理结构上可以分别用两个网卡来实现。举例来说,如图2所示,在一个集群内包含一台负载均衡设备20和多个服务器(服务器21、22、23),该负载均衡设备20对外的地址为172.204.20.98,该地址是一个实际的IP地址,可以通过TCP/IP协议连接到互联网,而该负载均衡设备20对内有一个虚拟的IP地址192.168.1.1,同样的每个服务器设置有虚拟IP地址(服务器21的虚拟IP地址为192.168.1.2、服务器22的虚拟IP地址为192.168.1.3、服务器23的虚拟IP地址为192.168.1.4),该负载均衡设备20的对内地址用于向服务器发送数据以及接收服务器发送来的数据。可见,在本例中,只有当第一数据报文的第一目的地址为172.204.20.98时,负载均衡设备20才能接收到第一数据报文。
当然,关于本发明中的源地址和目的地址等地址,当应用于TCP/IP网络时,其为通用的IP地址,当应用于其他网络架构时,可以适应地为其他类型的地址。
负载均衡设备通过网络接收数据报文,该负载均衡设备可以直接连接到互联网,也可以通过网关、路由器、防火墙等软硬件设备连接到互联网。当然,负载均衡设备还可以通过一个负载均衡总设备连接到互联网,该负载均衡总设备连接各个集群中的负载均衡设备,用于根据调度算法将接收到的数据报文负载到选中的集群,此时,负载均衡设备接收的数据报文来自负载均衡总设备。负载均衡设备是一个单独的硬件设备,也可以是运行在其他网络设备上的能够进行网络地址转换(NAT)的软件设备。
因此,在本发明的一个可选实施方式中,如图3所示,可能存在多个集群,每个集群都连接到一个负载均衡总设备,客户端先通过互联网将数据报文发送到负载均衡总设备,负载均衡总设备根据负载均衡算法将数据报文负载到选中的一个集群中,即将数据报文转发到选中的一个集群中的负载均衡设备上。负载均衡总设备可以直接通过硬件均衡的方式完成,即通过专线连接到各个负载均衡设备,也可以通过软件的方式实现负载均衡。
需要注意的是,基于互联网的数据传输很可能经过网关、路由器、防火墙等设备,在本发明中不对网关、路由器、防火墙等设备的原理进行阐述,但本发明的数据报文在涉及到网络传输时,在传输过程中很可能经过网关、路由器、防火墙等设备的转发,由于网关、路由器、防火墙属于常用的网络设备,在此不对涉及到网关、路由器、防火墙等设备的架构一一列举,但应该理解,即便数据报文经过了网关、路由器、防火墙等设备的转发,也应该落入本发明的保护范围。可见,在本发明的图2和图3中,虽然图中显示客户端连接到负载均衡设备,显然并不仅仅包含客户端直连到负载均衡设备的情况,更应当包含客户端通过网络以及网络设备(网关、路由器、防火墙等)连接到负载均衡设备的情况,在本发明后续类似的描述中也应当作此理解。
步骤S102,负载均衡设备根据第一数据报文获取标识信息,根据标识信息查找第一列表中是否存在标识信息和服务器的对应关系。具体来说,负载均衡设备中维护有一张记录标识信息和服务器对应关系的第一列表,在该列表中列明了某一个标识信息对应于哪一个服务器,当负载均衡设备在接收到数据报文后,需要确定将该数据报文转发到哪一个服务器。而该第一列表中是否存在标识信息对应哪一个服务器的记录,可以是根据客户端的要求预先设定的(例如,基于某些规则,特定的客户端只能连接到特定的某个服务器),也可以根据客户端与该服务器之前进行数据交互的历史记录生成第一列表中的记录,具体如何根据客户端与该服务器之前进行数据交互的历史记录生成第一列表中记录的过程在本实施例后续将会详细记载,在此不详述。因此,负责均衡设备首先从数据报文中解析出标识信息(该标识信息可能存储在数据报文的包头中,也可能存在其他字段中),再从第一列表中查找该标识信息,如果查找得到了该标识信息,则说明该第一列表中存有该标识信息和服务器的对应关系。如果没有找到该标识信息,则说明该第一列表中不存有该标识信息和服务器的对应关系。
在本实施例的一种实施方式中,第一列表中存储的标识信息可能不是明文存储的,有可能存储的是该标识信息经过不可逆运算后得到的运算值,则负载均衡设备不能直接用该标识信息去查找第一列表,此时,负载均衡设备根据第一数据报文获取标识信息后,对标识信息进行不可逆运算获得第一运算值,判断第一列表中是否存在第一运算值和服务器的对应关系。不可逆运算可以采用哈希算法或其他不可逆算法来实现。应当注意的是,为保证计算结果的一致性,两次不可逆运算所应用的算法应当为同一种算法。通过存储标识信息的运算值而非存储标识信息本身,一方面可以减少存储的数据量,另一方面由于算法的不可逆性,可以保证标识信息存储的安全性。
步骤S103,如果第一列表中存在标识信息和服务器的对应关系,则负载均衡设备将与标识信息对应的服务器作为第一目标服务器,获取第一目标服务器地址,将第一数据报文中的第一源地址修改为负载均衡设备的对内地址,将第一数据报文中的第一目的地址修改为标识信息对应的第一目标服务器地址,获得第二数据报文。具体来说,负载均衡设备应当知道集群内部所有服务器的地址,如果在在第一列表中标识信息和服务器的对应关系是标识信息与服务器地址的对应关系,则该负载均衡设备通过第一列表即可获知要转发给的服务器地址,如果在在第一列表中标识信息和服务器的对应关系仅仅是标识信息与服务器(用其他标识表示)的对应关系,则负载均衡设备还需要找到相应服务器的地址作为第一目标服务器地址。当负载均衡设备将第一数据报文转发给第一目标服务器时,为了标示数据报文的发送方以及接收方,需要对数据报文的原始的源地址和目的地址进行修改,将第一数据报文中的第一源地址修改为负载均衡设备的对内地址,以便数据报文的接收方(即目标服务器)能够通过源地址知道谁发来的数据,而将第一数据报文中的第一目的地址修改为对应的第一目标服务器的地址,以便负载均衡设备将数据报文转发到正确的服务器。仍然图2的架构为例,当负载均衡设备20查询到第一列表中的标识信息对应的服务器为服务器23时,则此时负载均衡设备将接收到的第一数据报文中的第一目的地址(即172.204.20.98)修改为192.168.1.4,将第一数据报文中的第一源地址修改为192.168.1.1,修改了目的地址和源地址的第一数据报文即成为第二数据报文。
步骤S104,负载均衡设备根据第一目标服务器地址将第二数据报文转发至第一目标服务器。具体来说,第二数据报文的目的地址为第一目标服务器的地址,因此负载均衡设备根据第一目标服务器的地址将该第二数据报文转发至第一目标服务器。
步骤S105,负载均衡设备接收第一目标服务器发送的第二数据报文对应的第一响应报文,第一响应报文是第一目标服务器解析第二数据报文后进行处理生成的,其中,第一响应报文中至少包括第二源地址和第二目的地址,第二目的地址为负载均衡设备的对内地址。负载均衡设备向第一目标服务器发送第二数据报文后,完成了此次第一数据报文的发送。而第一目标服务器在接收到第二数据报文后,根据相应的规则解析出数据报文的内容,对解析出的数据报文进行相应的处理,最后生成响应报文。具体来说,在某些需要连续进行的交易中,客户端和服务器的通信并非一次能够完成,而需要多次交互进行,在数据交互的过程中,有可能需要用到双方协商的或者预先存储的密钥进行计算,则第一目标服务器在解析出第二数据报文的内容后,获取到相应的指令和信息,从而进行运算后得到需要响应的信息,将响应信息形成第一响应报文。第一目标服务器在获得了第一响应报文之后,根据第一数据报文的源地址将发送该第一响应报文,因此,该第一响应报文的源地址为第一目标服务器自身的地址,该第一响应报文的目的地址为负载均衡设备的对内地址。仍然以图2为例,服务器23接收到目的地址为192.168.1.4的第二数据报文,确认该目的地址与自身的地址一致,即该服务器23是该第二数据报文的正确接收者,通过与该第二数据报文相匹配的协议将该第二数据报文解析出来,对解析出的数据进行相应的处理后获得第一响应报文,该响应报文中的目的地址为192.168.1.1,源地址为192.168.1.4,并将该第一响应报文在集群内发送,而负载均衡设备20是目的地址192.168.1.1的对应设备,则成功接收到该第一响应报文。
步骤S106,负载均衡设备将第一响应报文中的第二源地址修改为负载均衡设备的对外地址,将第一响应报文中的第二目的地址修改为第一源地址,获得第二响应报文,并将第二响应报文外发。具体来说,负载均衡设备在接收到第一响应报文之后,获知该第一响应报文是第一数据报文的关联数据,则将该第一数据报文的真实目的地址确定为发送第一数据报文的第一源地址。需要注意的是,在需要的时候,负载均衡设备可以通过标识信息获知该该第一响应报文是第一数据报文的关联数据,也可以通过数据报文的其他标识来获知该第一响应报文是第一数据报文的关联数据。
需要注意的是,负载均衡设备在接收到第一数据报文后进行地址转换时,需要存储地址转换的记录,以便后续负载均衡设备能够找到相应的第一源地址。当然,负载均衡设备在接收到第一响应报文后进行地址转换后,也需要存储地址转换的记录,以便后续使用。此外,在每次进行地址转换的时候,如果有需要更改端口号,则依照同样的逻辑更改,在此不再赘叙。
通过本实施例的负载均衡方法,可以将特定客户端一次业务请求的多次数据报文转发到相应的或同一个服务器,保证客户端业务状态的连续性,有利于保护客户交易的安全性。且基于地址转发的负载均衡算法对负载均衡设备没有特殊的要求,配置比较简单,易于实现。
在本发明的一个可选实施方式中,当客户端与服务器第一次进行数据交互时,可以根据客户端与该服务器数据交互的第一次交互记录生成第一列表中的记录。当负载均衡设备收到一个数据报文之后,先根据数据报文中的标识信息判断其是否需要建立一个新的连接,如果标识信息已经存在对应的服务器,则不需要建立一个新的连接,如果标识信息没有对应的服务器,则需要建立一个新的连接,具体来说,负载均衡设备在接收第一数据报文并获取标识信息,并根据标识信息查找第一列表中是否存在标识信息和服务器的对应关系之后,如图4所示,本实施方式还包括以下步骤:
步骤S201,如果第一列表中不存在标识信息和服务器的对应关系,则负载均衡设备根据预先设定的负责均衡策略选择集群中的一个服务器作为标识信息对应的服务器,将被选择的与标识信息对应的服务器作为第二目标服务器,并将标识信息和第二目标服务器的对应关系记入第一列表。具体来说,负载均衡设备在收到客户端发送来的本次业务请求的第一个数据报文时,该负载均衡设备的第一列表中并不存有该客户端的标识信息,负载均衡设备无法通过查表的方式获得该数据报文要转发的目标服务器,此时负载均衡设备需要根据自身的负载均衡算法选择一个合适的服务器并将该数据报文转发出去。在负载均衡设备确定了本次业务请求所选用的服务器之后,为了使得该客户端的本次业务请求能够固定由同一个服务器处理,负载均衡设备应当记录该客户端和服务器的对应关系,即将本次业务请求的数据报文中包含的标识信息与所选择服务器(可以存储服务器的地址)的对应关系存储到第一列表中,以便负载均衡设备在处理本次业务请求的后续其他数据报文时还能找到该服务器,从而将该业务请求发送到同一个服务器由同一个服务器处理。
在本发明的一个可选实施例中,当负载均衡设备存储标识信息和服务器地址的对应关系时,该标识信息和/或服务器地址可以采用明文存储,以方便存储和查询;也可以将标识信息和/或服务器地址加密存储,以保证存储的安全性;也可以将标识信息和/或服务器地址进行不可逆运算(例如哈希运算)后存储,一方面可以减少存储的数据量,另一方面还能保证存储的安全性。
在本发明的一个可选实施例中,负载均衡设备还存储有第二列表,第二列表中存储集群中每个服务器的可连接数。具体来说,负载均衡设备在选择服务器时,需要根据集群内服务器维持的连接数来确定选择哪一台服务器,仍然以图2为例,每个服务器的可连接数为16个,即每个服务器可以同时维持16个连接,则该集群内总共可以维持48个连接,第二列表可以分别存储每个服务器已经被占用的连接数,以便为新到来的业务请求分配合适的服务器,第二列表还可以存储集群总体的可连接数,以便在集群的可连接数为0时,直接拒绝该业务请求或者将该业务请求进行排队处理。在实际的操作过程中,对第二列表的维护可以通过设定一个可连接数的总数(例如16),来一个新的业务请求就对可连接数进行“减一”处理,减到0则认为可连接数已经用完;也可以将已连接数初始设为0,来一个新的业务请求就已可连接数进行“加一”处理,加到可连接的总数(例如16)则认为可连接数已经用完,或者采用其他可行的方式,本发明不限于此。通过在负载均衡设备中维护第二列表,可以根据每个服务器的可连接数来分配业务请求,保证给每个业务请求分配空闲的服务器,保证业务请求能够被及时处理,在保证客户端业务状态连续性的前提下,实现对业务请求实现均衡负载。
在本发明的一个可选实施方式中,在负载均衡设备根据第二目标服务器地址将第三数据报文转发至第二目标服务器之后,方法还包括:负载均衡设备将第二目标服务器的可连接数减少一个。具体来说,当负载均衡设备为一个新到来业务请求分配了一个服务器之后,负载均衡设备应当相应地将第二列表中的被分配了新到来业务请求的服务器减少一个可连接数,以便维持第二列表中可连接数的正确性。
步骤S202,负载均衡设备将第一数据报文中的第一目的地址修改为第二目标服务器的地址,将第一数据报文中的第一源地址修改为负载均衡设备的对内地址,获得第三数据报文。
步骤S203,负载均衡设备根据第二目标服务器地址将第三数据报文转发至第二目标服务器。
步骤S204,负载均衡设备接收第二目标服务器发送的第三数据报文对应的第三响应报文,第三响应报文是第二目标服务器解析第三数据报文后进行处理生成的,其中,第三响应报文中至少包括第三源地址和第三目的地址,第三目的地址为负载均衡设备的对内地址。
步骤S205,负载均衡设备将第三响应报文中的第三源地址改为负载均衡设备的对外地址,将第三响应报文中的第三目的地址修改为第一源地址,获得第四响应报文,并将第四响应报文外发。
在本发明的一个可选实施方式中,负载均衡设备在预设时间间隔接收集群中每个服务器发送的可连接数,并将每个服务器发送的可连接数更新至第二列表。具体来说,为了保证第二列表中可连接数实时的准确性,负载均衡设备可以每隔预定的时间向服务器请求其实时的可连接数,也可以由每个服务器定时主动向负载均衡设备发送其实时的可连接数。当然,服务器在出现故障或者其他情况导致可连接数发生变化时,也可以及时向负载均衡设备报告可连接数。
在本发明的一个可选实施方式中,当一次业务请求即将结束时,在最后一个数据报文或者响应报文中可能携带有业务状态信息,负载均衡设备或者服务器可以通过业务状态信息判断其是否要进入结束状态,从而决定是否释放一个连接,使得目标服务器的可连接数增加一个,保证服务器的可连接数的实时更新。具体来说可能包括但不限于以下几种方式:
方式一、第一数据报文中包含了交互状态信息;负载均衡设备还根据第一数据报文获取交互状态信息,并判断交互状态信息是否为结束状态,如果交互状态信息为结束状态,则负载均衡设备将第一目标服务器的可连接数增加一个;具体来说,第一数据报文中可能包含有一个状态信息,该状态信息用于标识本次数据报文是一个开始报文、中间报文还是结束报文,以便接收该数据报文方能够根据状态做出相应的处理。负载均衡设备在接收到第一数据报文之后,如果该交互状态信息位于该数据报文的报文头或者其他可以被负载均衡设备解析出来的位置,则负载均衡设备根据该第一数据报文直接获得交互状态信息,从而判断该交互状态信息是否为结束状态,如果交互状态信息表明该数据报文并非结束状态,则负载均衡设备可以记录下当前的状态信息,也可以不做任何处理;如果交互状态信息表明该数据报文是结束状态,则负载均衡设备可以理解为该数据报文为本次业务连接的最后一个数据报文,负载均衡设备可以在在判断出该交互状态信息之后立刻释放一个连接,也可以在将数据报文转发至目标服务器之后释放一个连接。
方式二、第一数据报文中包含了交互状态信息;负载均衡设备接收服务器解析第二数据报文后获得并发送的交互状态信息,并判断交互状态信息是否为结束状态,如果交互状态信息为结束状态,则负载均衡设备将第一目标服务器的可连接数增加一个;与方式一不同的是,负载均衡设备在接收到第一数据报文之后,如果该交互状态信息位于无法负载均衡设备解析出来的位置(例如数据内容中),则负载均衡设备需要接收服务器解析出该数据报文后并发送过来的交互状态信息,依据与方式一同样的方法决定是否释放一个连接。
方式三、第一响应报文中包含了交互状态信息;负载均衡设备还根据第一响应报文获取交互状态信息,并判断交互状态信息是否为结束状态,如果交互状态信息为结束状态,则负载均衡设备将第一目标服务器的可连接数增加一个。具体来说,响应报文中也可以有交互状态信息,负载均衡设备可以依照与方式一和方式二中类似的方法解析出响应报文中的状态信息,并根据交互状态信息判断是否释放一个连接,在此不再赘叙。
在本发明的一个可选实施方式中,当负责均衡设备决定释放一个连接时,负载均衡设备还从第一列表中删除所述标识信息与服务器的对应关系,当同一个客户端发起另一个业务请求时,需要再次建立连接并将对应的标识信息和选中的服务器的对应关系写入第一列表中,一方面防止同一个客户端长期占用同一个服务器,另一方面还可以保持第一列表中数据的简洁性。
实施例2
本实施例提供一种基于地址转发的负载均衡设备20,负载均衡设备20连接至多个服务器,负载均衡设备20与多个服务器形成一个集群。本实施例中仅对负载均衡设备的结构进行说明,其他未尽事宜参见实施例1。如图5所示,负载均衡设备20包括第一接口201、第二接口202、查找单元203和转发单元204:
第一接口201,用于接收第一数据报文,第一数据报文中至少包括第一源地址、第一目的地址和标识信息,其中,第一目的地址为负载均衡设备20的对外地址,标识信息用于唯一标识发送第一数据报文的客户端;
查找单元203,用于根据第一数据报文获取标识信息,根据标识信息查找第一列表中是否存在标识信息和服务器的对应关系;
转发单元204,在第一列表中存在标识信息和服务器的对应关系时,用于将与标识信息对应的服务器作为第一目标服务器,获取第一目标服务器地址,将第一数据报文中的第一源地址修改为负载均衡设备的对内地址,将第一数据报文中的第一目的地址修改为标识信息对应的第一目标服务器地址,获得第二数据报文;
第二接口202,用于根据第一目标服务器地址将第二数据报文转发至第一目标服务器,并接收第一目标服务器发送的第二数据报文对应的第一响应报文,第一响应报文是第一目标服务器解析第二数据报文后进行处理生成的,其中,第一响应报文中至少包括第二源地址和第二目的地址,第二目的地址为负载均衡设备的对内地址;
转发单元204,还用于将第一响应报文中的第二源地址修改为负载均衡设备的对外地址,将第一响应报文中的第二目的地址修改为第一源地址,获得第二响应报文;
第一接口201,还用于将第二响应报文外发。
通过本实施例的负载均衡设备,可以将特定客户端一次业务请求的多次数据报文转发到相应的或同一个服务器,保证客户端业务状态的连续性,有利于保护客户交易的安全性。且基于地址转发的负载均衡算法对负载均衡设备没有特殊的要求,配置比较简单,易于实现。
在本发明的一个可选实施方式中,当第一列表中不存在标识信息和服务器的对应关系时,转发单元204还用于根据预先设定的负责均衡策略选择集群中的一个服务器作为标识信息对应的服务器,将被选择的与标识信息对应的服务器作为第二目标服务器,并将标识信息和第二目标服务器的对应关系记入第一列表;并将第一数据报文中的第一目的地址修改为第二目标服务器的地址,将第一数据报文中的第一源地址修改为负载均衡设备的对内地址,获得第三数据报文;
第二接口202,还用于根据第二目标服务器地址将第三数据报文转发至第二目标服务器,并接收第二目标服务器发送的第三数据报文对应的第三响应报文,第三响应报文是第二目标服务器解析第三数据报文后进行处理生成的,其中,第三响应报文中至少包括第三源地址和第三目的地址,第三目的地址为负载均衡设备的对内地址;
转发单元204,还用于将第三响应报文中的第三源地址改为负载均衡设备的对外地址,将第三响应报文中的第三目的地址修改为第一源地址,获得第四响应报文;
第一接口201,还用于将第四响应报文外发。
在本发明的一个可选实施方式中,负载均衡设备20还包括连接控制单元205(图中未示出);连接控制单元205,用于存储第二列表,第二列表中存储集群中每个服务器的可连接数。
在本发明的一个可选实施方式中,连接控制单元205,用于在预设时间间隔接收集群中每个服务器发送的可连接数,并将每个服务器发送的可连接数更新至第二列表。
在本发明的一个可选实施方式中,在第二接口根据第二目标服务器地址将第三数据报文转发至第二目标服务器之后,连接控制单元205,还用于将第二目标服务器的可连接数减少一个。
在本发明的一个可选实施方式中,第一数据报文中包含了交互状态信息;连接控制单元205,还根据第一数据报文获取交互状态信息,并判断交互状态信息是否为结束状态,如果交互状态信息为结束状态,则第一目标服务器的可连接数增加一个;
或者第一数据报文中包含了交互状态信息;连接控制单元205,还接收服务器解析第二数据报文后获得并发送的交互状态信息,并判断交互状态信息是否为结束状态,如果交互状态信息为结束状态,则将第一目标服务器的可连接数增加一个;
或者第一响应报文中包含了交互状态信息;连接控制单元205,还根据第一响应报文获取交互状态信息,并判断交互状态信息是否为结束状态,如果交互状态信息为结束状态,则将第一目标服务器的可连接数增加一个。
在本发明的一个可选实施方式中,查找单元203根据第一数据报文获取标识信息,根据标识信息查找第一列表中是否存在标识信息和服务器的对应关系包括:查找单元203根据第一数据报文获取标识信息,对标识信息进行不可逆运算获得第一运算值,判断第一列表中是否存在第一运算值和服务器的对应关系。
实施例3
本实施例提供一种基于地址转发的负载均衡系统30,本实施例仅对负载均衡系统完成一次数据交互请求的系统框架做简单说明,其余参见实施例1和实施例2的描述。如图6所示,包括客户端31、服务器32和实施例1和实施例2中的负载均衡设备20,其中:客户端31通过网络发送第一数据报文,并通过网络接收第二响应报文;服务器32接收负载均衡设备20发送的第二数据报文,对第二数据报文进行解析,对解析后的第二数据报文进行处理,获得第一响应报文,并将第一响应报文发送至负载均衡设备20。
当然,在本实施例的一个可选实施方式中,在客户端31直接连接到负载均衡设备20时,可以不需要网络的转发,客户端31与负载均衡设备20之间直接传输数据报文。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。
Claims (15)
1.一种基于地址转发的负载均衡方法,其特征在于,应用于包含一个负载均衡设备和多个服务器的集群,每个服务器连接至所述负载均衡设备,所述方法包括:
负载均衡设备接收第一数据报文,所述第一数据报文中至少包括第一源地址、第一目的地址和标识信息,其中,所述第一目的地址为所述负载均衡设备的对外地址,所述标识信息用于唯一标识发送所述第一数据报文的客户端;
所述负载均衡设备根据所述第一数据报文获取所述标识信息,根据所述标识信息查找第一列表中是否存在所述标识信息和服务器的对应关系;
如果第一列表中存在所述标识信息和服务器的对应关系,则所述负载均衡设备将与所述标识信息对应的服务器作为第一目标服务器,获取第一目标服务器地址,将所述第一数据报文中的第一源地址修改为所述负载均衡设备的对内地址,将所述第一数据报文中的第一目的地址修改为所述标识信息对应的第一目标服务器地址,获得第二数据报文;
所述负载均衡设备根据所述第一目标服务器地址将所述第二数据报文转发至第一目标服务器;
所述负载均衡设备接收所述第一目标服务器发送的所述第二数据报文对应的第一响应报文,所述第一响应报文是所述第一目标服务器解析所述第二数据报文后进行处理生成的,其中,所述第一响应报文中至少包括第二源地址和第二目的地址,所述第二目的地址为所述负载均衡设备的对内地址;
所述负载均衡设备将所述第一响应报文中的所述第二源地址修改为所述负载均衡设备的对外地址,将所述第一响应报文中的第二目的地址修改为所述第一源地址,获得第二响应报文,并将所述第二响应报文外发。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果第一列表中不存在所述标识信息和服务器的对应关系,则所述负载均衡设备根据预先设定的负责均衡策略选择所述集群中的一个服务器作为所述标识信息对应的服务器,将被选择的与所述标识信息对应的服务器作为第二目标服务器,并将所述标识信息和所述第二目标服务器的对应关系记入所述第一列表;
所述负载均衡设备将所述第一数据报文中的第一目的地址修改为所述第二目标服务器的地址,将所述第一数据报文中的第一源地址修改为所述负载均衡设备的对内地址,获得第三数据报文;
所述负载均衡设备根据所述第二目标服务器地址将所述第三数据报文转发至所述第二目标服务器;
所述负载均衡设备接收所述第二目标服务器发送的所述第三数据报文对应的第三响应报文,所述第三响应报文是所述第二目标服务器解析第三数据报文后进行处理生成的,其中,所述第三响应报文中至少包括第三源地址和第三目的地址,所述第三目的地址为所述负载均衡设备的对内地址;
所述负载均衡设备将所述第三响应报文中的所述第三源地址改为所述负载均衡设备的对外地址,将所述第三响应报文中的第三目的地址修改为所述第一源地址,获得第四响应报文,并将所述第四响应报文外发。
3.根据权利要求1或2所述的方法,其特征在于,所述负载均衡设备还存储有第二列表,所述第二列表中存储所述集群中每个服务器的可连接数。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述负载均衡设备在预设时间间隔接收所述集群中每个服务器发送的可连接数,并将所述每个服务器发送的可连接数更新至所述第二列表。
5.根据权利要求3所述的方法,其特征在于,在所述负载均衡设备根据所述第二目标服务器地址将所述第三数据报文转发至所述第二目标服务器之后,所述方法还包括:
所述负载均衡设备将所述第二目标服务器的可连接数减少一个。
6.根据权利要求3所述的方法,其特征在于,
所述第一数据报文中包含了交互状态信息;
所述方法还包括:所述负载均衡设备还根据所述第一数据报文获取所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则所述负载均衡设备将所述第一目标服务器的可连接数增加一个;
或者
所述第一数据报文中包含了交互状态信息;
所述方法还包括:所述负载均衡设备接收所述服务器解析所述第二数据报文后获得并发送的所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则所述负载均衡设备将所述第一目标服务器的可连接数增加一个;
或者
所述第一响应报文中包含了交互状态信息;
所述方法还包括:所述负载均衡设备还根据所述第一响应报文获取所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则所述负载均衡设备将所述第一目标服务器的可连接数增加一个。
7.根据权利要求1-6任一项所述的方法,其特征在于,
所述负载均衡设备根据所述第一数据报文获取所述标识信息,根据所述标识信息查找第一列表中是否存在所述标识信息和服务器的对应关系包括:
所述负载均衡设备根据所述第一数据报文获取所述标识信息,对所述标识信息进行不可逆运算获得第一运算值,判断第一列表中是否存在所述第一运算值和服务器的对应关系。
8.一种基于地址转发的负载均衡设备,其特征在于,所述负载均衡设备连接至多个服务器,所述负载均衡设备与所述多个服务器形成一个集群,包括第一接口、第二接口、查找单元和转发单元:
所述第一接口,用于接收第一数据报文,所述第一数据报文中至少包括第一源地址、第一目的地址和标识信息,其中,所述第一目的地址为所述负载均衡设备的对外地址,所述标识信息用于唯一标识发送所述第一数据报文的客户端;
所述查找单元,用于根据所述第一数据报文获取所述标识信息,根据所述标识信息查找第一列表中是否存在所述标识信息和服务器的对应关系;
所述转发单元,在第一列表中存在所述标识信息和服务器的对应关系时,用于将与所述标识信息对应的服务器作为第一目标服务器,获取第一目标服务器地址,将所述第一数据报文中的第一源地址修改为所述负载均衡设备的对内地址,将所述第一数据报文中的第一目的地址修改为所述标识信息对应的第一目标服务器地址,获得第二数据报文;
所述第二接口,用于根据所述第一目标服务器地址将所述第二数据报文转发至第一目标服务器,并接收所述第一目标服务器发送的所述第二数据报文对应的第一响应报文,所述第一响应报文是所述第一目标服务器解析所述第二数据报文后进行处理生成的,其中,所述第一响应报文中至少包括第二源地址和第二目的地址,所述第二目的地址为所述负载均衡设备的对内地址;
所述转发单元,还用于将所述第一响应报文中的所述第二源地址修改为所述负载均衡设备的对外地址,将所述第一响应报文中的第二目的地址修改为所述第一源地址,获得第二响应报文;
所述第一接口,还用于将所述第二响应报文外发。
9.根据权利要求8所述的设备,其特征在于,
当第一列表中不存在所述标识信息和服务器的对应关系时,所述转发单元还用于根据预先设定的负责均衡策略选择所述集群中的一个服务器作为所述标识信息对应的服务器,将被选择的与所述标识信息对应的服务器作为第二目标服务器,并将所述标识信息和所述第二目标服务器的对应关系记入所述第一列表;并将所述第一数据报文中的第一目的地址修改为所述第二目标服务器的地址,将所述第一数据报文中的第一源地址修改为所述负载均衡设备的对内地址,获得第三数据报文;
所述第二接口,还用于根据所述第二目标服务器地址将所述第三数据报文转发至所述第二目标服务器,并接收所述第二目标服务器发送的所述第三数据报文对应的第三响应报文,所述第三响应报文是所述第二目标服务器解析第三数据报文后进行处理生成的,其中,所述第三响应报文中至少包括第三源地址和第三目的地址,所述第三目的地址为所述负载均衡设备的对内地址;
所述转发单元,还用于将所述第三响应报文中的所述第三源地址改为所述负载均衡设备的对外地址,将所述第三响应报文中的第三目的地址修改为所述第一源地址,获得第四响应报文;
所述第一接口,还用于将所述第四响应报文外发。
10.根据权利要求8或9所述的设备,其特征在于,所述负载均衡设备还包括连接控制单元;
所述连接控制单元,用于存储第二列表,所述第二列表中存储所述集群中每个服务器的可连接数。
11.根据权利要求10所述的设备,其特征在于,
所述连接控制单元,用于在预设时间间隔接收所述集群中每个服务器发送的可连接数,并将所述每个服务器发送的可连接数更新至所述第二列表。
12.根据权利要求10所述的设备,其特征在于,在所述第二接口根据所述第二目标服务器地址将所述第三数据报文转发至所述第二目标服务器之后,
所述连接控制单元,还用于将所述第二目标服务器的可连接数减少一个。
13.根据权利要求10所述的设备,其特征在于,
所述第一数据报文中包含了交互状态信息;
所述连接控制单元,还根据所述第一数据报文获取所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则所述第一目标服务器的可连接数增加一个;
或者
所述第一数据报文中包含了交互状态信息;
所述连接控制单元,还接收所述服务器解析所述第二数据报文后获得并发送的所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则将所述第一目标服务器的可连接数增加一个;
或者
所述第一响应报文中包含了交互状态信息;
所述连接控制单元,还根据所述第一响应报文获取所述交互状态信息,并判断所述交互状态信息是否为结束状态,如果所述交互状态信息为结束状态,则将所述第一目标服务器的可连接数增加一个。
14.根据权利要求8-13任一项所述的设备,其特征在于,
所述查找单元根据所述第一数据报文获取所述标识信息,根据所述标识信息查找第一列表中是否存在所述标识信息和服务器的对应关系包括:
所述查找单元根据所述第一数据报文获取所述标识信息,对所述标识信息进行不可逆运算获得第一运算值,判断第一列表中是否存在所述第一运算值和服务器的对应关系。
15.一种基于地址转发的负载均衡系统,其特征在于,包括至少一个客户端、至少一个服务器和如权利要求8-14所述的负载均衡设备,其中:
所述客户端通过网络发送所述第一数据报文,并通过网络接收所述第二响应报文;
所述服务器接收所述负载均衡设备发送的所述第二数据报文,对所述第二数据报文进行解析,对解析后的第二数据报文进行处理,获得所述第一响应报文,并将所述第一响应报文发送至所述负载均衡设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058718.XA CN107070983A (zh) | 2017-01-23 | 2017-01-23 | 一种基于地址转发的负载均衡方法、设备和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058718.XA CN107070983A (zh) | 2017-01-23 | 2017-01-23 | 一种基于地址转发的负载均衡方法、设备和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107070983A true CN107070983A (zh) | 2017-08-18 |
Family
ID=59598041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710058718.XA Pending CN107070983A (zh) | 2017-01-23 | 2017-01-23 | 一种基于地址转发的负载均衡方法、设备和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107070983A (zh) |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645540A (zh) * | 2017-08-21 | 2018-01-30 | 西安交大捷普网络科技有限公司 | web应用系统的负载均衡方法 |
CN108306771A (zh) * | 2018-02-09 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 日志上报方法、装置及系统 |
CN108810118A (zh) * | 2018-05-30 | 2018-11-13 | 努比亚技术有限公司 | 负载均衡方法、设备和计算机可读储存介质 |
CN109361749A (zh) * | 2018-10-24 | 2019-02-19 | 华为技术有限公司 | 报文处理方法、相关设备及计算机存储介质 |
CN109981701A (zh) * | 2017-12-27 | 2019-07-05 | 新智数字科技有限公司 | 透传方法、透传系统和代理服务器 |
CN110020955A (zh) * | 2017-08-24 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 在线医保信息处理方法及装置、服务器和用户终端 |
CN110166570A (zh) * | 2019-06-04 | 2019-08-23 | 杭州迪普科技股份有限公司 | 业务会话管理方法、装置、电子设备 |
CN110347501A (zh) * | 2019-06-20 | 2019-10-18 | 北京大米科技有限公司 | 一种业务检测方法、装置、存储介质及电子设备 |
CN110908872A (zh) * | 2019-11-29 | 2020-03-24 | 杭州迪普科技股份有限公司 | 一种服务器状态检测方法及系统 |
CN110995656A (zh) * | 2019-11-06 | 2020-04-10 | 深信服科技股份有限公司 | 负载均衡方法、装置、设备及存储介质 |
CN111131496A (zh) * | 2019-12-31 | 2020-05-08 | 易票联支付有限公司 | 一种基于标识信息的通讯中转方法、系统、装置及介质 |
CN111147598A (zh) * | 2019-12-30 | 2020-05-12 | 杭州迪普科技股份有限公司 | Http报文处理方法及装置 |
CN111147583A (zh) * | 2019-12-27 | 2020-05-12 | 杭州迪普科技股份有限公司 | 一种http重定向重写方法及装置 |
CN111176830A (zh) * | 2019-12-03 | 2020-05-19 | 支付宝实验室(新加坡)有限公司 | 信息流的分配方法、装置及服务器系统 |
CN111193756A (zh) * | 2018-11-14 | 2020-05-22 | 中移(杭州)信息技术有限公司 | 一种vxlan隧道负载均衡方法及相关设备 |
CN111193773A (zh) * | 2019-12-06 | 2020-05-22 | 腾讯云计算(北京)有限责任公司 | 负载均衡方法、装置、设备及存储介质 |
CN111327647A (zh) * | 2018-12-13 | 2020-06-23 | 北京金山云网络技术有限公司 | 一种容器对外提供服务的方法、装置及电子设备 |
CN111432377A (zh) * | 2020-03-31 | 2020-07-17 | 北京东土军悦科技有限公司 | 一种列车负载均衡系统、方法、列车系统及基地系统 |
CN111988405A (zh) * | 2020-08-20 | 2020-11-24 | 杭州迪普科技股份有限公司 | 负载均衡装置的报文重写方法及负载均衡装置 |
CN111988362A (zh) * | 2020-07-22 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 数据的传输方法、装置、终端及存储介质 |
CN112615784A (zh) * | 2020-12-17 | 2021-04-06 | 北京天融信网络安全技术有限公司 | 一种转发报文的方法、装置、存储介质和电子设备 |
CN112633867A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种交易请求处理方法和装置 |
CN112653740A (zh) * | 2020-12-11 | 2021-04-13 | 北京金山云网络技术有限公司 | 支持quic连接迁移的负载均衡方法、装置及计算机产品 |
CN112866433A (zh) * | 2021-01-22 | 2021-05-28 | 京东数字科技控股股份有限公司 | 报文的负载均衡处理方法、装置和计算机设备 |
CN112995349A (zh) * | 2019-12-12 | 2021-06-18 | 中兴通讯股份有限公司 | 地址管理方法、服务器和计算机可读存储介质 |
CN113630329A (zh) * | 2021-07-20 | 2021-11-09 | 湖北美和易思教育科技有限公司 | 基于用户访问量的负载均衡方法、系统及可读存储介质 |
CN114268615A (zh) * | 2021-12-24 | 2022-04-01 | 成都知道创宇信息技术有限公司 | 基于tcp连接的业务处理方法和系统 |
CN114301989A (zh) * | 2021-12-28 | 2022-04-08 | 中国电信股份有限公司 | 信息传递方法、装置和系统 |
CN114390056A (zh) * | 2022-01-11 | 2022-04-22 | 京东科技信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
CN114785737A (zh) * | 2022-04-11 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 报文处理方法、网关设备、服务器及存储介质 |
WO2023035836A1 (zh) * | 2021-09-09 | 2023-03-16 | 华为技术有限公司 | 一种报文处理方法及相关装置 |
WO2023241064A1 (zh) * | 2022-06-14 | 2023-12-21 | 中兴通讯股份有限公司 | 业务请求处理方法、电子设备和存储介质 |
CN111176830B (zh) * | 2019-12-03 | 2024-04-26 | 先进新星技术(新加坡)控股有限公司 | 信息流的分配方法、装置及服务器系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491053A (zh) * | 2012-06-08 | 2014-01-01 | 北京百度网讯科技有限公司 | Udp负载均衡方法、系统及装置 |
CN104079668A (zh) * | 2014-07-21 | 2014-10-01 | 北京快易博科技有限公司 | 一种dns负载均衡调节方法和系统 |
CN104780210A (zh) * | 2015-04-13 | 2015-07-15 | 杭州华三通信技术有限公司 | 负载均衡方法以及装置 |
CN105072182A (zh) * | 2015-08-10 | 2015-11-18 | 北京佳讯飞鸿电气股份有限公司 | 一种负载均衡方法、负载均衡器和用户终端 |
CN105530311A (zh) * | 2015-12-25 | 2016-04-27 | 北京奇虎科技有限公司 | 负载分配方法和设备 |
-
2017
- 2017-01-23 CN CN201710058718.XA patent/CN107070983A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491053A (zh) * | 2012-06-08 | 2014-01-01 | 北京百度网讯科技有限公司 | Udp负载均衡方法、系统及装置 |
CN104079668A (zh) * | 2014-07-21 | 2014-10-01 | 北京快易博科技有限公司 | 一种dns负载均衡调节方法和系统 |
CN104780210A (zh) * | 2015-04-13 | 2015-07-15 | 杭州华三通信技术有限公司 | 负载均衡方法以及装置 |
CN105072182A (zh) * | 2015-08-10 | 2015-11-18 | 北京佳讯飞鸿电气股份有限公司 | 一种负载均衡方法、负载均衡器和用户终端 |
CN105530311A (zh) * | 2015-12-25 | 2016-04-27 | 北京奇虎科技有限公司 | 负载分配方法和设备 |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645540A (zh) * | 2017-08-21 | 2018-01-30 | 西安交大捷普网络科技有限公司 | web应用系统的负载均衡方法 |
CN110020955A (zh) * | 2017-08-24 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 在线医保信息处理方法及装置、服务器和用户终端 |
CN109981701A (zh) * | 2017-12-27 | 2019-07-05 | 新智数字科技有限公司 | 透传方法、透传系统和代理服务器 |
CN108306771A (zh) * | 2018-02-09 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 日志上报方法、装置及系统 |
CN108306771B (zh) * | 2018-02-09 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 日志上报方法、装置及系统 |
CN108810118A (zh) * | 2018-05-30 | 2018-11-13 | 努比亚技术有限公司 | 负载均衡方法、设备和计算机可读储存介质 |
CN109361749B (zh) * | 2018-10-24 | 2022-03-29 | 华为云计算技术有限公司 | 报文处理方法、相关设备及计算机存储介质 |
WO2020082839A1 (zh) * | 2018-10-24 | 2020-04-30 | 华为技术有限公司 | 报文处理方法、相关设备及计算机存储介质 |
US11316916B2 (en) | 2018-10-24 | 2022-04-26 | Huawei Technologies Co., Ltd. | Packet processing method, related device, and computer storage medium |
CN109361749A (zh) * | 2018-10-24 | 2019-02-19 | 华为技术有限公司 | 报文处理方法、相关设备及计算机存储介质 |
CN111193756A (zh) * | 2018-11-14 | 2020-05-22 | 中移(杭州)信息技术有限公司 | 一种vxlan隧道负载均衡方法及相关设备 |
CN111327647A (zh) * | 2018-12-13 | 2020-06-23 | 北京金山云网络技术有限公司 | 一种容器对外提供服务的方法、装置及电子设备 |
CN110166570A (zh) * | 2019-06-04 | 2019-08-23 | 杭州迪普科技股份有限公司 | 业务会话管理方法、装置、电子设备 |
CN110166570B (zh) * | 2019-06-04 | 2022-06-28 | 杭州迪普科技股份有限公司 | 业务会话管理方法、装置、电子设备 |
CN110347501A (zh) * | 2019-06-20 | 2019-10-18 | 北京大米科技有限公司 | 一种业务检测方法、装置、存储介质及电子设备 |
CN110995656A (zh) * | 2019-11-06 | 2020-04-10 | 深信服科技股份有限公司 | 负载均衡方法、装置、设备及存储介质 |
CN110995656B (zh) * | 2019-11-06 | 2022-08-05 | 深信服科技股份有限公司 | 负载均衡方法、装置、设备及存储介质 |
CN110908872A (zh) * | 2019-11-29 | 2020-03-24 | 杭州迪普科技股份有限公司 | 一种服务器状态检测方法及系统 |
CN110908872B (zh) * | 2019-11-29 | 2023-04-25 | 杭州迪普科技股份有限公司 | 一种服务器状态检测方法及系统 |
CN111176830B (zh) * | 2019-12-03 | 2024-04-26 | 先进新星技术(新加坡)控股有限公司 | 信息流的分配方法、装置及服务器系统 |
CN111176830A (zh) * | 2019-12-03 | 2020-05-19 | 支付宝实验室(新加坡)有限公司 | 信息流的分配方法、装置及服务器系统 |
CN111193773A (zh) * | 2019-12-06 | 2020-05-22 | 腾讯云计算(北京)有限责任公司 | 负载均衡方法、装置、设备及存储介质 |
CN112995349B (zh) * | 2019-12-12 | 2023-07-04 | 中兴通讯股份有限公司 | 地址管理方法、服务器和计算机可读存储介质 |
CN112995349A (zh) * | 2019-12-12 | 2021-06-18 | 中兴通讯股份有限公司 | 地址管理方法、服务器和计算机可读存储介质 |
CN111147583A (zh) * | 2019-12-27 | 2020-05-12 | 杭州迪普科技股份有限公司 | 一种http重定向重写方法及装置 |
CN111147598A (zh) * | 2019-12-30 | 2020-05-12 | 杭州迪普科技股份有限公司 | Http报文处理方法及装置 |
CN111131496A (zh) * | 2019-12-31 | 2020-05-08 | 易票联支付有限公司 | 一种基于标识信息的通讯中转方法、系统、装置及介质 |
CN111432377A (zh) * | 2020-03-31 | 2020-07-17 | 北京东土军悦科技有限公司 | 一种列车负载均衡系统、方法、列车系统及基地系统 |
CN111988362B (zh) * | 2020-07-22 | 2022-11-22 | 北京达佳互联信息技术有限公司 | 数据的传输方法、装置、终端及存储介质 |
CN111988362A (zh) * | 2020-07-22 | 2020-11-24 | 北京达佳互联信息技术有限公司 | 数据的传输方法、装置、终端及存储介质 |
CN111988405B (zh) * | 2020-08-20 | 2023-09-26 | 杭州迪普科技股份有限公司 | 负载均衡装置的报文重写方法及负载均衡装置 |
CN111988405A (zh) * | 2020-08-20 | 2020-11-24 | 杭州迪普科技股份有限公司 | 负载均衡装置的报文重写方法及负载均衡装置 |
CN112653740A (zh) * | 2020-12-11 | 2021-04-13 | 北京金山云网络技术有限公司 | 支持quic连接迁移的负载均衡方法、装置及计算机产品 |
CN112615784A (zh) * | 2020-12-17 | 2021-04-06 | 北京天融信网络安全技术有限公司 | 一种转发报文的方法、装置、存储介质和电子设备 |
CN112615784B (zh) * | 2020-12-17 | 2023-03-07 | 北京天融信网络安全技术有限公司 | 一种转发报文的方法、装置、存储介质和电子设备 |
CN112633867A (zh) * | 2020-12-30 | 2021-04-09 | 中国农业银行股份有限公司 | 一种交易请求处理方法和装置 |
CN112866433A (zh) * | 2021-01-22 | 2021-05-28 | 京东数字科技控股股份有限公司 | 报文的负载均衡处理方法、装置和计算机设备 |
CN113630329A (zh) * | 2021-07-20 | 2021-11-09 | 湖北美和易思教育科技有限公司 | 基于用户访问量的负载均衡方法、系统及可读存储介质 |
WO2023035836A1 (zh) * | 2021-09-09 | 2023-03-16 | 华为技术有限公司 | 一种报文处理方法及相关装置 |
CN114268615B (zh) * | 2021-12-24 | 2023-08-08 | 成都知道创宇信息技术有限公司 | 基于tcp连接的业务处理方法和系统 |
CN114268615A (zh) * | 2021-12-24 | 2022-04-01 | 成都知道创宇信息技术有限公司 | 基于tcp连接的业务处理方法和系统 |
CN114301989A (zh) * | 2021-12-28 | 2022-04-08 | 中国电信股份有限公司 | 信息传递方法、装置和系统 |
CN114390056A (zh) * | 2022-01-11 | 2022-04-22 | 京东科技信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
CN114785737A (zh) * | 2022-04-11 | 2022-07-22 | 阿里巴巴(中国)有限公司 | 报文处理方法、网关设备、服务器及存储介质 |
WO2023241064A1 (zh) * | 2022-06-14 | 2023-12-21 | 中兴通讯股份有限公司 | 业务请求处理方法、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107070983A (zh) | 一种基于地址转发的负载均衡方法、设备和系统 | |
CN102685177B (zh) | 资源的透明代理缓存方法、网络设备及系统 | |
EP2469792B1 (en) | Data transmission system and method using relay server | |
US7653075B2 (en) | Processing communication flows in asymmetrically routed networks | |
CN101094187B (zh) | 一种学习介质访问控制地址的方法和装置、业务板 | |
US9294396B2 (en) | Port extender | |
US8095686B2 (en) | Method and system for communicating information between a switch and a plurality of servers in a computer network | |
US8059653B1 (en) | Transaction and connection independent protocol load balancing | |
CN107005584A (zh) | 内联服务交换机 | |
CN100413290C (zh) | 设置边界网关协议路由选择通知功能的方法 | |
CN105162883B (zh) | 网络负载均衡处理系统及其方法和装置 | |
CN106790675A (zh) | 一种集群内负载均衡方法、设备和系统 | |
CN102035900B (zh) | 用于通过中继方式进行nat穿越的方法、系统和中继服务器 | |
JP2011160041A (ja) | フロントエンドシステム、フロントエンド処理方法 | |
CN102148767A (zh) | 一种基于nat的数据路由方法及其装置 | |
CN102281180A (zh) | 应用于不同局域网的终端相互通讯的虚拟网卡通讯装置 | |
CN108924050A (zh) | 数据转发方法及其装置、存储介质和网卡设备 | |
US8619631B2 (en) | Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program | |
CN102647487A (zh) | 一种节约ip地址的方法及接入代理设备 | |
US8396062B2 (en) | System for switching between communication devices, switching method, and switching program | |
CN104094243A (zh) | 信息处理装置、信息处理方法和程序 | |
CN106797384A (zh) | 以不同的协议将请求路由到集群中的相同端点 | |
CN107637053A (zh) | 网络环境中可扩展的网络地址转换 | |
US9942823B2 (en) | Communication terminal, communication method, and communication program | |
CN110166375A (zh) | 一种报文转发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170818 |