CN106790675A - 一种集群内负载均衡方法、设备和*** - Google Patents
一种集群内负载均衡方法、设备和*** Download PDFInfo
- Publication number
- CN106790675A CN106790675A CN201710058884.XA CN201710058884A CN106790675A CN 106790675 A CN106790675 A CN 106790675A CN 201710058884 A CN201710058884 A CN 201710058884A CN 106790675 A CN106790675 A CN 106790675A
- Authority
- CN
- China
- Prior art keywords
- load
- real server
- bags
- address
- client
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种集群内负载均衡方法、设备和***,负载均衡设备创建并维护客户端的唯一标识信息与真实服务器的MAC地址的对应关系,实现在客户端的一次业务完成之前,负载均衡设备根据客户端的唯一标识信息与真实服务器的MAC地址的对应关系,将从同一客户端接收到的数据包路由到同一台真实服务器,从而使得在客户端发起一个业务请求到本次业务结束的过程中,同一个真实服务器为其提供服务,保证了客户端的业务状态连续。
Description
技术领域
本发明涉及一种负载均衡领域,尤其涉及一种集群内负载均衡方法、设备和***。
背景技术
现有的负载均衡技术中,当客户端发起一个业务请求时,负载均衡设备会根据负载均衡算法给客户端分配一个服务器进行业务响应。由于客户端从发起一个业务请求到本次业务结束,需要与服务器进行多次数据交互,而在每次数据交互时,负载均衡设备分配给客户端的服务器不一定是同一个,因此,在客户端发起一个业务请求到本次业务结束的过程中,有可能存在多个服务器先后为同一个客户端提供服务,造成了客户端的业务状态不连续。
发明内容
本发明旨在至少解决上述问题之一。
本发明的主要目的在于提供一种集群内负载均衡方法、设备和***。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明一方面提供了一种集群内负载均衡方法:
方案1、一种集群内负载均衡方法,应用于包含一个负载均衡设备和多个真实服务器的集群,其中,所述集群中的所有负载均衡设备和真实服务器的虚拟IP地址相同;所述方法包括:
步骤S101:所述负载均衡设备接收IP包,并从所述IP包获取所述IP包的包头;
步骤S102:所述负载均衡设备根据所述IP包的包头确定所述IP包的目的IP地址为所述负载均衡设备的虚拟IP地址;
步骤S103:所述负载均衡设备从所述IP包获取能唯一标识客户端的地址信息,并根据所述地址信息获取所述客户端的唯一标识信息;
步骤S104:所述负载均衡设备在预设的标识信息与真实服务器的MAC地址的对应关系中查找所述客户端的唯一标识信息,在查找到所述唯一标识信息的情况下,获取与所述唯一标识信息对应的真实服务器的MAC地址,其中,所述对应关系中记录的所述真实服务器与所述负载均衡设备在同一个集群中;
步骤S105:所述负载均衡设备将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址,并发送修改后的IP包;
步骤S106:所述对应的真实服务器接收并解析所述修改后的IP包,并对解析得到的数据进行响应,得到响应数据;
步骤S107:所述对应的真实服务器封装所述响应数据,得到并发送响应IP包,其中,所述响应IP包的目的IP地址为所述修改后的IP包的源IP地址,所述响应IP包的源IP地址为所述对应的真实服务器的虚拟IP地址。
方案2、根据方案1所述的方法,在步骤S104中,在从所述对应关系中没有查找到所述客户端的唯一标识信息的情况下,所述方法还包括:
步骤S105’:所述负载均衡设备根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,将所述客户端的唯一标识信息与分配的所述真实服务器的MAC地址记录到所述对应关系中,然后将所述IP包的目的MAC地址修改为所述根据负载均衡算法获取的真实服务器的MAC地址,并发送修改后的IP包,执行步骤S106。
方案3、根据方案2所述的方法,所述负载均衡设备根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,包括:
查询所述集群内的多个真实服务器的可连接数,根据所述负载均衡算法从可连接数大于或等于1的真实服务器中为所述客户端分配所述目的服务器;并将所述目的服务器的可连接数减一。
方案4、根据方案1至3任一项所述的方法,在查找到所述唯一标识信息的情况下,在步骤S105之前,所述方法还包括:
步骤S108:所述负载均衡设备判断所述对应的真实服务器的状态是否发生变化,在所述对应的真实服务器的状态没有发生变化的情况下,执行步骤S105。
方案5、根据方案4所述的方法,在所述对应的真实服务器的状态发生变化的情况下,所述方法还包括:
步骤S109:所述负载均衡设备判断所述对应的真实服务器的状态是否为结束状态,若否,执行步骤S110,否则,执行步骤S111;
步骤S110:所述负载均衡设备更新所述对应的真实服务器的状态,执行步骤S105;
步骤S111:所述负载均衡设备删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录。
方案6、根据方案5所述的方法,在所述删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录之后,所述方法还包括:
将所述对应的真实服务器的可连接数加一。
方案7、根据方案1至6任一项所述的方法,在步骤S101之前,所述方法还包括:
步骤S201:所述负载均衡设备启动端口服务;
步骤S202:所述负载均衡设备初始化所述集群内的真实服务器的可连接数,初始化所述对应关系。
方案8、根据方案1至7任一项所述的方法,所述方法还包括:
步骤S301:所述负载均衡设备监听端口;
步骤S302:所述负载均衡设备接收所述集群内的真实服务器发送的集群信息,所述集群信息至少包括真实服务器的真实IP地址、MAC地址、可连接数和真实服务器的状态,并根据所述集群信息对所述集群内的各个真实服务器的可连接数及状态进行同步。
方案9、根据方案1至8任一项所述的方法,所述方法还包括:
步骤S401:所述负载均衡设备判断所述对应关系中的各项记录是否超时,并删除所述对应关系中已超时的记录。
本发明的另一方面提供一种负载均衡设备:
方案10、应用于包含一个负载均衡设备和多个真实服务器的集群,其中,所述集群中的所有负载均衡设备和真实服务器的虚拟IP地址相同;所述设备包括:
接收模块,用于接收IP包,并从所述IP包获取所述IP包的包头;
判断模块,用于根据所述IP包的包头确定所述IP包的目的IP地址为所述负载均衡设备的虚拟IP地址;
获取模块,用于从所述IP包获取能唯一标识客户端的地址信息,并根据所述地址信息获取所述客户端的唯一标识信息;
负载均衡模块,用于在预设的标识信息与真实服务器的MAC地址的对应关系中查找所述客户端的唯一标识信息,在查找到所述唯一标识信息的情况下,获取与所述唯一标识信息对应的真实服务器的MAC地址,将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址,得到修改后的IP包;其中,所述对应关系中记录的所述真实服务器与所述负载均衡设备在同一个集群中;
发送模块,用于发送所述负载均衡模块得到的修改后的IP包。
方案11、根据权利要求10所述的设备,所述负载均衡模块还用于:在从所述对应关系中没有查找到所述客户端的唯一标识信息的情况下,根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,将所述客户端的唯一标识信息与分配的所述真实服务器的MAC 地址记录到所述对应关系中,将所述IP包的目的MAC地址修改为所述根据负载均衡算法获取的真实服务器的MAC地址,并得到修改后的IP包。
方案12、根据权利要求11所述的设备,所述负载均衡模块根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,包括:
查询所述集群内的多个真实服务器的可连接数,根据所述负载均衡算法从可连接数大于或等于1的真实服务器中为所述客户端分配所述目的服务器;并将所述目的服务器的可连接数减一。
方案13、根据方案10至12任一项所述的设备,所述负载均衡模块还用于:在查找到所述唯一标识信息的情况下,判断所述对应的真实服务器的状态是否发生变化,在所述对应的真实服务器的状态没有发生变化的情况下,执行将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址的操作。
方案14、根据方案13所述的设备,所述负载均衡模块还用于:在判断所述对应的真实服务器的状态发生变化的情况下,判断所述对应的真实服务器的状态是否为结束状态,若否,则更新所述对应的真实服务器的状态,否则,删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录。
方案15、根据方案14所述的设备,所述负载均衡模块还用于:在删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录之后,将所述对应的真实服务器的可连接数加一。
方案16、根据方案10至15任一项所述的设备,所述设备还包括:
初始化模块,用于启动端口服务,初始化所述集群内的真实服务器的可连接数,初始化所述对应关系。
方案17、根据方案10至16任一项所述的设备,所述负载均衡模块还用于监听端口,接收所述集群内的真实服务器发送的集群信息,所述集群信息至少包括真实服务器的真实IP地址、MAC地址、可连接数和真实服务器的状态,并根据所述集群信息对所述集群内的各个真实服务器的可连接数及状态进行同步。
方案18、根据方案10至17任一项所述的设备,所述负载均衡模块还用于判断所述对应关系中的各项记录是否超时,并删除所述对应关系中已超时的记录。
本发明的另一方面提供一种负载均衡***:
方案19、包括方案10至18任一项所述的设备以及集群内的真实服务器,其中,所述真实服务器用于:接收并解析修改后的IP包,并对解析得到的数据进行响应,得到响应数据;封装所述响应数据,得到并发送响应IP包,其中,所述响应IP包的目的IP地址为所述修改后的IP包的源IP地址,所述响应IP包的源IP地址为所述对应的真实服务器的虚拟IP地址。
由上述本发明提供的技术方案可以看出,通过本发明提供的集群内负载均衡方法、设备和***,负载均衡设备创建并维护客户端的唯一标识信息与真实服务器的MAC地址的对应关系,实现在客户端的一次业务完成之前,负载均衡设备根据客户端的唯一标识信息与真实服务器的MAC地址的对应关系,将从同一客户端接收到的数据包路由到同一台真实服务器,从而使得在客户端发起一个业务请求到本次业务结束的过程中,同一个真实服务器为其提供服务,保证了客户端的业务状态连续。此外,通过对各个真实服务器的可连接数的维护,可以根据真实服务器的可连接数实现对一个集群服务器的动态负载均衡。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例1提供的一种集群负载均衡***的结构示意图;
图2为本发明实施例1提供的另一种集群负载均衡***的结构示意图;
图3为本发明实施例1提供的一种负载均衡设备的结构示意图;
图4为本发明实施例1提供的另一种负载均衡设备的结构示意图;
图5为本发明实施例1提供的***中对客户端发送一个IP包到客户端接收到响应IP包的过程示意图;
图6为本发明实施例2提供的集群内负载均衡方法的流程图;
图7为本发明实施例1中的一种节点循环链表的示意图;
图8为本发明实施例2中的一种节点循环链表的示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或数量或位置。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
下面将结合附图对本发明实施例作进一步地详细描述。
实施例1
本实施例提供了一种集群负载均衡***,该集群负载均衡***包括负载均衡设备以及集群内的真实服务器,并且,同一个集群内的负载均衡设备以及真实服务器对外共用同一个虚拟IP地址。该集群负载均衡***为集群外部的设备(以下简称为“外部设备”)提供服务。
本实施例中,负载均衡设备可以为硬件设备,也可以为负载均衡软件。若负载均衡设备为硬件设备,则负载均衡设备可以通过硬件设备的数据传输接口(例如,端口)直接接收外部设备发送的数据包;若负载均衡设备为负载均衡软件,则可以先将负载均衡软件在服务器的操作***(Operating System,OS)上进行安装、配置、调试,成功之后再通过服务器的数据传输接口(例如,端口)接收外部设备发送的数据包。
本实施例中,外部设备可以与集群负载均衡***通过数据通信协议进行数据交互,例如通过TCP/IP协议进行IP包的传输。
在实际的服务器部署中,当客户端的业务处理量较少时,外部设备可以为客户端,例如PC、移动终端、IPAD、智能可穿戴设备、读卡器等设备。因此,在本实施例的一个可选实施方式中,集群负载均衡***可以如图1所示,该集群负载均衡***100包括负载均衡设备10以及多个真实服务器20。在该***中,客户端30可以直接将IP包发送至集群负载均衡***100的负载均衡设备10,并由负载均衡设备10选定的集群内的一个真实服务器20处理IP包,保证了客户端快速地获得真实服务器的服务。
但当客户端的业务处理量非常大的时候,需要多个集群提供服务,以缓解一个集群的业务处理压力,因此,外部设备可以为一级负载均衡设备。因此,在本实施例的一个可选实施方式中,集群负载均衡***可以如图2所示,该集群负载均衡***200包括多个集群负载均衡***100,每个集群负载均衡***100包括负载均衡设备10以及多个真实服务器20。在该***中,客户端30先将IP包发送至一级负载均衡设备40,一级负载均衡设备40修改IP包的目的地址信息后,再将修改后的IP包发送至一个集群负载均衡***100的负载均衡设备10,并由负载均衡设备10选定的该集群内的一个真实服务器20处理IP包,从而有效地缓解了集群的业务处理压力。
本实施例中,由于负载均衡设备10和真实服务器20对外可以共用同一个虚拟IP地址,因此,外部设备发送IP包时,外部设备将外部设备的IP地址作为源IP地址、集群的虚拟IP地址作为目的IP地址进行发送,负载均衡设备10接收到IP包后,根据现有的负载均衡算法选择集群内的一个真实服务器20,并将IP包转发给该真实服务器20。由于负载均衡设备10只是把该IP包的目的MAC地址修改为该真实服务器20的MAC地址,并不对该IP包的目的IP地址进行修改,即该IP包的目的IP地址为该真实服务器20的虚拟IP地址(也即集群的虚拟IP地址),因此,保证了该真实服务器20可以接收到IP包。由于该真实服务器20接收到的IP包中的目的IP地址为负载均衡设备的虚拟IP地址,该虚拟IP地址与真实服务器的虚拟IP地址(也即集群的虚拟IP地址)一致,因此,该真实服务器处理该IP包并生成响应IP包。该真实服务器20在返回响应IP包时,响应IP包的源IP地址是原IP包的目的IP地址、目的IP地址是原IP包的源IP地址,即响应IP包的源IP地址是该真实服务器20的虚拟IP地址(也即集群的虚拟IP地址)、目的IP地址是外部设备的IP地址。因此,该真实服务器20可以直接将响应IP包返回给外部设备,而不需要通过负载均衡设备10将响应IP包转发给外部设备。也就是说,负载均衡设备只负责接收外部设备发送的IP包,并不负责将响应IP包返回给外部设备,即保证了真实服务器能够对响应IP包进行直接的路由返回,并不需要再次经过负载均衡设备,提高了外部设备与真实服务器之间的数据传输速率。
本实施例中,外部设备将集群的虚拟IP地址作为IP包的目的IP地址从而对IP包进行发送。由于集群中的负载均衡设备10和真实服务器20的都具有相同的虚拟IP地址,因此,为了保证外部设备发送的IP包只有负载均衡设备10接收到并由负载均衡设备10转发给真实服务器20,外部设备在发送IP包之前,外部设备与负载均衡设备10要执行以下流程:
A1)外部设备向集群内的负载均衡设备10和真实服务器20发送MAC报文,并且,该MAC报文的目的IP地址为集群的虚拟IP地址,其中,MAC报文用于获取集群内的负载均衡设备10和真实服务器20的MAC地址;
A2)负载均衡设备10接收到该MAC报文后,生成MAC响应报文,并将MAC响应报文返回给外部设备,其中,MAC响应报文中包含了负载均衡设备10的MAC地址;
A3)真实服务器20接收到该MAC报文后,判断该MAC报文的目的IP地址为虚拟IP地址,则真实服务器20不对该MAC报文进行响应;
A4)外部设备从负载均衡设备10返回的MAC响应报文中获取负载均衡设备10的MAC地址。
因此,外部设备将集群的虚拟IP地址作为IP包的目的IP地址进行IP包的发送时,IP包的目的地址信息中包含着集群内的负载均衡设备的MAC地址,保证了外部设备发送的IP包只有负载均衡设备10可以接收到,从而使得负载均衡设备10接收到IP包后可以按照集群内的负载状况分配一个真实服务器20为外部设备提供服务,实现了对集群内的负载进行有效均衡。
下面将着重对本实施例提供的负载均衡***100和负载均衡***200中的负载均衡设备10进行详细描述,并对该负载均衡设备10如何实现将同一客户端发起的一次业务流程中的所有数据包分配到给同一个真实服务器,从而保证业务的状态连续的工作原理进行详细描述。
如图3所示,本实施例提供了一种负载均衡设备10,并且,该负载均衡设备10应用于包含一个负载均衡设备和多个真实服务器的集群,其中,所述集群中的负载均衡设备和真实服务器的虚拟IP地址相同。该负载均衡设备10具体包括:接收模块101、判断模块102、获取模块103、负载均衡模块104和发送模块105,其中:
接收模块101,用于接收IP包,并从所述IP包获取所述IP包的包头;
判断模块102,用于根据所述IP包的包头确定所述IP包的目的IP地址为所述负载均衡设备的虚拟IP地址;
获取模块103,用于从所述IP包获取能唯一标识客户端的地址信息,并根据所述地址信息获取所述客户端的唯一标识信息;
负载均衡模块104,用于在预设的标识信息与真实服务器的MAC地址的对应关系中查找所述客户端的唯一标识信息,在查找到所述唯一标识信息的情况下,获取与所述唯一标识信息对应的真实服务器的MAC地址,将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址,得到修改后的IP包,其中,所述对应关系中记录的所述真实服务器与所述负载均衡设备在同一个集群中;
发送模块105,用于发送负载均衡模块104得到的修改后的IP包。
通过本实施例提供的负载均衡设备,负载均衡设备创建并维护客户端的唯一标识信息与真实服务器的MAC地址的对应关系,实现在客户端的一次业务完成之前,负载均衡设备根据客户端的唯一标识信息与真实服务器的MAC地址的对应关系,将从同一客户端接收到的数据包路由到同一台真实服务器,从而使得在客户端发起一个业务请求到本次业务结束的过程中,同一个真实服务器为其提供服务,保证了客户端的业务状态连续
本实施例中,接收模块101接收到的IP包来自外部设备,具体而言,可以是作为外部设备的客户端直接将IP包发送至接收模块101,也可以是一级负载均衡设备作为外部设备而对客户端发送的IP包进行转发至接收模块101。其中,IP包由IP包的包头和数据两部分组成,其中,IP包的包头可以包含IP包的协议版本、协议、源地址信息、目的地址信息等。IP包的包头中的源地址信息可以为客户端的源IP地址和端口信息,可以用来唯一标识客户端。IP包的包头中的目的地址信息可以为集群的虚拟IP地址,从而使得集群内的真实服务器为客户端提供服务。
本实施例中,负载均衡设备10具有虚拟IP地址,同时还可以具有真实的IP地址。其中,虚拟IP地址用于处理外部设备的业务,真实的IP地址用于处理网络文件信息、监控后台管理等业务。通常,前者是由负载均衡设备10转发给真实服务器20,最终由真实服务器20进行处理,而后者是由负载均衡设备10自身进行处理。因此,接收模块101接收到一个IP包后,首先判断模块102要根据IP包的包头确定该IP包的目的IP地址是否为负载均衡设备10的虚拟IP地址,若是,说明该IP包是外部设备的业务请求,从而其他模块再执行后续的给外部设备分配真实服务器20的步骤。
本实施例中,IP包中包含客户端的IP地址和端口信息,可以作为唯一标识客户端的地址信息。其中,在该IP包没有经由一级负载均衡设备的情况下,获取模块103可以从IP包的源地址信息中获取到客户端的IP地址和端口信息,在IP包经由一级负载均衡设备发送到负载均衡设备10的情况下,客户端的IP地址和端口信息可以是封装在IP包之中的,例如,可以封装在IP包的包头内,获取模块103可以对接收到的IP包进行解封装,从而获取客户端的IP地址和端口信息。获取模块103可以把客户端的IP地址和端口信息直接作为客户端的唯一标识信息,但采用这种方式,需要较多的存储空间进行存储,,而且也不方便检索。因此,获取模块103可以通过以下方式根据该地址信息获取客户端的唯一标识信息:采用不可逆算法对该地址信息进行不可逆运算得到外部设备的唯一标识信息。其中,不可逆算法可以包括以下之一:MD4算法、MD5算法、SHA1算法、MAC算法、异或运算。其中,前4种都是基于哈希算法的算法。例如,获取模块103可以采用哈希算法(上述前4种之一)对客户端的源IP地址和端口信息进行哈希运算获得对应的哈希值。通过对地址信息进行不可逆运算可以获得相对于地址信息更紧凑的数值表示形式,从而可以节省获取模块103的存储空间,此外,利用计算得到的哈希值不仅可以唯一标识客户端,还可以提高查找速度,即获取模块103根据哈希值可以更快地查找到对应的目的真实服务器。当然,获取模块103也可以通过除不可逆算法之外的算法对地址信息进行运算,例如可逆加密算法等等。本实施例对此算法并不做限制。
本实施例中,负载均衡模块104可以维护客户端的唯一标识信息与真实服务器的对应关系,从而方便负载均衡模块104快速查找到与客户端对应的真实服务器。具体实施过程中,客户端的唯一标识信息与真实服务器的对应关系可以为客户端的唯一标识信息与真实服务器的MAC地址的对应关系。负载均衡模块104在预设的客户端的唯一标识信息与真实服务器的MAC地址的对应关系中查询客户端的唯一标识信息,在查找到客户端的唯一标识信息的情况下,获取与客户端的唯一标识信息对应的真实服务器的MAC地址,并以对应的真实服务器的MAC地址作为目的地址转发IP包。
本实施例中,负载均衡模块104可以通过建立表的形式来维护客户端的唯一标识信息与真实服务器的MAC地址对应关系。例如,表格中记录负载均衡模块104在步骤S103中获得的客户端的哈希值及相应的真实服务器的MAC地址,如下面的表格所示:
哈希值 | 真实服务器的MAC地址 |
Hash值1 | 00-25-64-76-BD-60 |
Hash值2 | 10-60-4B-7D-0B-92 |
…… | …… |
客户端首次发起业务请求时,客户端可以直接将IP包发送至接收模块101,也可以是客户端经过一级负载均衡设备将IP包转发至接收模块101,接收模块101接收到IP包后,负载均衡模块104根据轮询、加权轮询、随机、最少连接、源地址散列等算法进行负载分配,为该客户端分配一个真实服务器作为目的服务器为其服务。同时,负载均衡模块104会在表格中为客户端建立一条记录,即增加该客户端的哈希值与对应的真实服务器的MAC地址的一条记录,从而建立客户端的唯一标识信息与真实服务器一一对应的映射关系。在客户端的本次业务结束前,接收模块101每次接收到客户端发起的一个IP包,负载均衡模块104在该表格中查找到与之对应的真实服务器的MAC地址,进而将该客户端发起的IP包路由到同一个真实服务器,保证了整个业务过程中,均为同一个真实服务器为客户端提供服务,保证了客户端的业务状态连续。
本实施例中,负载均衡模块104在预设的标识信息与真实服务器的MAC地址的对应关系中查找到客户端的唯一标识信息的情况下,获取与客户端的唯一标识信息对应的真实服务器的MAC地址,将IP包的目的MAC地址修改为对应的真实服务器的MAC地址,得到修改后的IP包,将得到的修改后的IP包交由发送模块105发送,从而可以将修改后的IP包准确地转发至对应的真实服务器,使得同一个真实服务器为客户端提供服务,保证了客户端的业务状态连续。
在本实施例的一个可选实施方式中,负载均衡模块104在从所述对应关系中没有查找到所述客户端的唯一标识信息的情况下,所述负载均衡模块104还用于根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,将所述客户端的唯一标识信息与分配的所述真实服务器的MAC地址记录到所述对应关系中,然后将所述IP包的目的MAC地址修改为所述根据负载均衡算法获取的真实服务器20的MAC地址,将修改后的IP包交由发送模块105发送。
在本实施例的一个可选实施方式中,负载均衡模块104根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,包括:查询所述集群内的多个真实服务器的可连接数,根据所述负载均衡算法从可连接数大于或等于1的真实服务器中为所述客户端分配所述目的服务器;并将所述目的服务器的可连接数减一。
在该可选实施方式中,如果负载均衡模块104在对应关系中没有查找到客户端的唯一标识信息,说明该客户端是首次发起业务请求,则负载均衡模块104根据轮询、加权轮询、随机、最少连接、源地址散列等负载均衡算法进行负载分配,为该客户端分配一个真实服务器作为目的服务器为其服务。并且,负载均衡模块104可以在表格中为客户端建立一条记录,即增加该客户端的哈希值与分配的真实服务器的MAC地址的一条记录,从而建立客户端的唯一标识信息与分配的真实服务器一一对应的映射关系。
本实施例中,可连接数可以标识一个真实服务器当前还可以最多为几个客户端服务的能力。一般来说,一个真实服务器下挂有多个处理设备,例如,最多可以挂接16个,那么,这个真实服务器最多可以同时给16个客户端提供服务。例如,一个真实服务器可以下挂SAM(居民身份证验证安全控制)设备,用于对客户端发送的身份证信息解密,可连接数可以标识该真实服务器还可以提供的SAM设备的个数,每当为一个客户端提供服务时,在该客户端的一次完整业务流程中,一个SAM设备被占用,该真实服务器的可连接数就减一,当该客户端的业务流程结束,释放该服务器后,被占用的一个SAM设备被释放,该真实服务器的可连接数加一。因此,为了使负载均衡设备维护的集群内的真实服务器的可连接数能够真实的反映真实服务器当前的可连接数,在本发明实施例的一个可选实施方案中,负载均衡模块104还用于在为客户端分配一个真实服务器后,将真实服务器的可连接数减一。
在本实施例的一个可选实施方式中,负载均衡模块104可以通过一个节点循环链表记录集群内的各个真实服务器的可连接数,以实现对集群内的负载均衡管理。当集群内的一个真实服务器可连接数为0,则负载均衡模块104不再给该真实服务器分配业务处理,从而缓解了该真实服务器的负载压力,由此实现了该集群内的负载均衡。具体实施过程中,负载均衡模块104根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器的流程可以如下:
B1):所述负载均衡模块104获取所述集群内的真实服务器的节点循环链表,其中,所述节点循环链表由多个节点组成,每个节点至少包括:集群内的一个真实服务器的IP地址、MAC地址和可连接数,节点循环链表如图7所示。
B2):所述负载均衡模块104根据负载均衡算法获取所述节点循环链表中的一个节点;
B3):所述负载均衡模块104将根据负载均衡算法获取的所述节点的可连接数减一;
B4):所述负载均衡模块104判断根据负载均衡算法获取的所述节点当前的可连接数是否大于等于0,若是,则所述负载均衡模块104将根据负载均衡算法获取的所述节点对应的真实服务器分配给所述客户端,若否,则进行B5);
B5):所述负载均衡模块104判断所述节点循环链表中的节点数目是否超过所述节点循环链表的长度,若未超过,则返回执行步骤B2),若超过,则执行步骤B6);
B6):所述负载均衡模块104丢弃所述IP包,或者将所述IP包放入排队***。
通过该可选实施方式,在客户端首次发起业务请求时,负载均衡模块104可以根据集群内的真实服务器的可连接数快速给客户端分配一个可用的真实服务器为其提供服务。
在本实施例的一个可选实施方式中,在所述负载均衡模块104查找到所述唯一标识信息的情况下,在将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址之前,所述负载均衡模块104还用于判断所述对应的真实服务器的状态是否发生变化,在所述对应的真实服务器的状态没有发生变化的情况下,执行将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址的操作。在该可选实施方式中,负载均衡模块104可以定期或者随时接收真实服务器发送的真实服务器的状态信息,从而对真实服务器的状态进行同步。当真实服务器的状态没有发生变化,例如一直处于ESTABLISHED状态时,说明客户端与真实服务器之间一直处于连接状态,客户端的本次业务还没有结束,接收模块101本次接收到的IP包不是本次业务的最后一个包,则发送模块105将本次接收到的IP包转发给真实服务器。
在本实施例的一个可选实施方式中,在判断所述对应的真实服务器的状态发生变化的情况下,所述负载均衡模块104还用于判断所述对应的真实服务器的状态是否为结束状态,若否,则更新所述对应的真实服务器的状态,否则,删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录。在该可选实施方式中,负载均衡模块104可以定期或者随时接收真实服务器发送的真实服务器的状态信息,从而对真实服务器的状态进行同步。当真实服务器的状态发生变化时,负载均衡模块104判断真实服务器的状态是否为结束状态,如果不是结束状态,例如,真实服务器的状态由SYN_RCVD状态变化为ESTABLISHED状态,说明客户端与真实服务器之间完成了三次握手并建立了连接,则负载均衡模块104更新真实服务器的状态,并发送模块105将本次接收到的IP包转发给真实服务器。如果是结束状态,例如,真实服务器处于TIME_WAIT状态,说明客户端与真实服务器之间的本次业务已经结束,接收模块101本次接收到的IP包是本次业务的最后一个包,因此,负载均衡模块104通过删除对应关系中记录的与客户端的唯一标识信息匹配的记录,及时地释放了存储空间,提高了真实服务器的利用效率。
在本实施例的一个可选实施方式中,在删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录之后,所述负载均衡模块104还用于将所述对应的真实服务器的可连接数加一。通过该可选实施方式,负载均衡模块可以及时地更新集群内的真实服务器的实际可连接数,从而使得集群内的负载均衡更加准确,加强了集群的数据处理能力。
在本实施例的一个可选实施方式中,所述设备还包括:初始化模块106,如图4所示,用于启动端口服务,初始化所述集群内的真实服务器的可连接数,初始化所述对应关系。在该可选实施方式中,负载均衡设备开机后,初始化模块106进行初始化,并启动端口服务,使得端口处于可用状态,便于接收各种信息,并且,初始化模块106初始化集群内的真实服务器的可连接数,便于负载均衡模块104根据每个真实服务器的可连接数进行负载均衡,提高集群的负载均衡能力。
在本实施例的一个可选实施方式中,所述负载均衡模块104还用于监听端口,接收所述集群内的真实服务器发送的集群信息,所述集群信息至少包括真实服务器的真实IP地址、MAC地址、可连接数和真实服务器的状态,并根据所述集群信息对所述集群内的各个真实服务器的可连接数及状态进行同步。在该可选实施方式中,负载均衡模块104可以定期或者随时接收真实服务器发送的集群信息,从而对集群内的各个真实服务器的可连接数及状态进行同步,使得负载均衡模块104随时掌握集群内的真实服务器的负载情况,方便了负载均衡设备进行合理的负载均衡。
在本实施例的一个可选实施方式中,所述负载均衡模块104还用于判断所述对应关系中的各项记录是否超时,并删除所述对应关系中已超时的记录。具体实施过程中,负载均衡模块104可以在对应关系中增加一条记录后,开启计时器,超过预设时间后,若该记录仍然存在于对应关系中,则负载均衡模块104将已超时的该记录删除。通过该可选实施方式,负载均衡模块104及时删除超时的记录,释放了存储空间,提高了存储空间的利用率。
在本实施例的一个可选实施方式中,一级负载均衡设备和集群内的负载均衡设备(即二级负载均衡设备)类似,为了保证客户端的业务状态连续,在客户端首次发起一个业务请求时,一级负载均衡设备根据负载均衡算法为客户端分配一个集群,在本次业务完成之前,客户端再次与集群进行数据交互时,一级负载均衡设备根据客户端的唯一标识信息与首次分配给客户端的集群的对应关系确定集群,从而使得在客户端发起一个业务请求到本次业务结束的过程中,同一个集群为其提供服务,保证了客户端的业务状态连续。
下面以一个实际应用进行举例,对客户端发送一个IP包到客户端接收到响应IP包的过程进行说明,如图5所示:
客户端30的源IP地址为172.16.11.247;一级负载均衡设备40的IP地址为192.168.2.2;集群负载均衡***100的负载均衡设备(二级负载均衡设备)10和真实服务器20的虚拟IP地址为192.168.1.88;二级负载均衡设备10的MAC地址为20-60-64-76-BD-80;某一个真实服务器20的MAC地址为00-25-64-76-BD-60;
①客户端30发送一个IP包1,IP包1的源IP地址为172.16.11.247,目的IP地址为192.168.2.2,IP包1的格式如下:
…… | 源IP地址 | 目的IP地址 | …… |
…… | 172.16.11.247 | 192.168.2.2 | …… |
②一级负载均衡设备40接收到IP包1后,为客户端30分配集群负载均衡***100,对IP包1的目的IP地址进行修改,修改为集群负载均衡***100的虚拟IP地址,获得IP包2,即一级负载均衡设备40向二级负载均衡设备10发送的IP包2的源IP地址为192.168.2.2,目的IP地址为192.168.1.88,目的MAC地址为二级负载均衡设备10的MAC地址,IP包2的格式如下:
…… | 源IP地址 | 目的IP地址 | 目的MAC地址 | …… |
…… | 192.168.2.2 | 192.168.1.88 | 20-60-64-76-BD-80 | …… |
③二级负载均衡设备10接收到IP包2后,为客户端30分配真实服务器1,对IP包2的目的MAC地址进行修改,修改为某一个真实服务器20的MAC地址,获得IP包3,即二级负载均衡设备10向真实服务器20发送的IP包3的源IP地址为192.168.2.2,目的IP地址为192.168.1.88,目的MAC地址为该真实服务器20的MAC地址,IP包3的格式如下:
…… | 源IP地址 | 目的IP地址 | 目的MAC地址 | …… |
…… | 192.168.2.2 | 192.168.1.88 | 00-25-64-76-BD-60 | …… |
④该真实服务器20接收到IP包3后,解析IP包3,并生成响应IP包,即IP包4,即真实服务器20返回给一级负载均衡设备40的IP包4的源IP地址为192.168.1.88,目的IP地址为192.168.2.2,IP包4的格式如下:
…… | 源IP地址 | 目的IP地址 | …… |
…… | 192.168.1.88 | 192.168.2.2 | …… |
⑤一级负载均衡设备40接收IP包4,生成响应IP包5,即一级负载均衡设备40返回给客户端30的响应IP包5的源IP地址为192.168.2.2,目的IP地址为172.16.11.247,IP包5的格式如下:
…… | 源IP地址 | 目的IP地址 | …… |
…… | 192.168.2.2 | 172.16.11.247 | …… |
由上述实施例提供的技术方案可以看出,通过本发明提供的集群内负载均衡设备和***,负载均衡设备创建并维护客户端的唯一标识信息与真实服务器的MAC地址的对应关系,实现在客户端的一次业务完成之前,负载均衡设备根据客户端的唯一标识信息与真实服务器的MAC地址的对应关系,将从同一客户端接收到的数据包路由到同一台真实服务器,从而使得在客户端发起一个业务请求到本次业务结束的过程中,同一个真实服务器为其提供服务,保证了客户端的业务状态连续。此外,通过对各个真实服务器的可连接数的维护,可以根据真实服务器的可连接数实现对一个集群服务器的动态负载均衡。
实施例2
本实施例提供了一种应用于实施例1提供的负载均衡***中的负载均衡方法,如图6所示,该负载均衡方法包括以下步骤(S101~S111):
步骤S101:所述负载均衡设备接收IP包,并从所述IP包获取所述IP包的包头;
本实施例中,该集群负载均衡***包括负载均衡设备以及集群内的真实服务器,并且,同一个集群内的负载均衡设备以及真实服务器对外共用同一个虚拟IP地址。该集群负载均衡***为集群外部的设备(以下简称为“外部设备”)提供服务。
本实施例中,负载均衡设备可以为硬件设备,也可以为负载均衡软件。若负载均衡设备为硬件设备,则负载均衡设备可以通过硬件设备的数据传输接口(例如,端口)直接接收外部设备发送的数据包;若负载均衡设备为负载均衡软件,则可以将负载均衡软件在服务器的操作***(Operating System,OS)上进行安装、配置、调试,成功之后再通过服务器的数据传输接口(例如,端口)接收外部设备发送的数据包。
本实施例中,外部设备可以与集群负载均衡***通过数据通信协议进行数据交互,例如通过TCP/IP协议进行IP包的传输。在实际的服务器部署中,当客户端的业务处理量较少时,外部设备可以为客户端,例如PC、移动终端、IPAD、智能可穿戴设备、读卡器等设备。因此,在本实施例的一个可选实施方式中,客户端可以直接将IP包发送至集群负载均衡***的负载均衡设备,并由负载均衡设备选定的集群内的一个真实服务器处理IP包,保证了客户端快速地获得真实服务器的服务。但当客户端的业务处理量非常大的时候,需要多个集群提供服务,以缓解一个集群的业务处理压力,因此,外部设备可以为一级负载均衡设备。因此,在本实施例的一个可选实施方式中,客户端先将IP包发送至一级负载均衡设备,一级负载均衡设备修改IP包的目的地址信息后,再将修改后的IP包发送至一个集群负载均衡***的负载均衡设备,并由负载均衡设备选定的该集群内的一个真实服务器处理IP包,从而有效地缓解了集群的业务处理压力。
本实施例中,由于负载均衡设备和真实服务器对外可以共用同一个虚拟IP地址,因此,外部设备发送IP包时,外部设备将外部设备的IP地址作为源IP地址、集群的虚拟IP地址作为目的IP地址进行发送,负载均衡设备接收到IP包后,根据现有的负载均衡算法选择集群内的一个真实服务器,并将IP包转发给该真实服务器。由于负载均衡设备只是把该IP包的目的MAC地址修改为该真实服务器的MAC地址,并不对该IP包的目的IP地址进行修改,即该IP包的目的IP地址为该真实服务器的虚拟IP地址(也即集群的虚拟IP地址),因此,保证了该真实服务器可以接收到IP包。由于该真实服务器接收到的IP包中的目的IP地址为负载均衡设备的虚拟IP地址,该虚拟IP地址与该真实服务器的虚拟IP地址(也即集群的虚拟IP地址)一致,因此,该真实服务器处理该IP包并生成响应IP包。该真实服务器在返回响应IP包时,响应IP包的源IP地址是原IP包的目的IP地址、目的IP地址是原IP包的源IP地址,即响应IP包的源IP地址是该真实服务器的虚拟IP地址(也即集群的虚拟IP地址)、目的IP地址是外部设备的IP地址。因此,该真实服务器可以直接将响应IP包返回给外部设备,而不需要通过负载均衡设备将响应IP包转发给外部设备。也就是说,负载均衡设备只负责接收外部设备发送的IP包,并不负责将响应IP包返回给外部设备,即保证了真实服务器能够对响应IP包进行直接的路由返回,并不需要再次经过负载均衡设备,提高了外部设备与真实服务器之间的数据传输速率。
本实施例中,外部设备将集群的虚拟IP地址作为IP包的目的IP地址从而对IP包进行发送。由于集群中的负载均衡设备和真实服务器的都具有相同的虚拟IP地址,因此,为了保证外部设备发送的IP包只有负载均衡设备接收到并由负载均衡设备转发给真实服务器,外部设备在发送IP包之前,外部设备与负载均衡设备要执行以下流程:
A1)外部设备向集群内的负载均衡设备和真实服务器发送MAC报文,并且,该MAC报文的目的IP地址为集群的虚拟IP地址,其中,MAC报文用于获取集群内的负载均衡设备和真实服务器的MAC地址;
A2)负载均衡设备接收到该MAC报文后,生成MAC响应报文,并将MAC响应报文返回给外部设备,其中,MAC响应报文中包含了负载均衡设备的MAC地址;
A3)真实服务器接收到该MAC报文后,判断该MAC报文的目的IP地址为虚拟IP地址,则真实服务器不对该MAC报文进行响应;
A4)外部设备从负载均衡设备返回的MAC响应报文中获取负载均衡设备的MAC地址。
因此,外部设备将集群的虚拟IP地址作为IP包的目的IP地址进行IP包的发送时,IP包的目的地址信息中包含着集群内的负载均衡设备的MAC地址,保证了外部设备发送的IP包只有负载均衡设备可以接收到,从而使得负载均衡设备接收到IP包后可以按照集群内的负载状况分配一个真实服务器为外部设备提供服务,实现了对集群内的负载进行有效均衡。
本实施例中,负载均衡设备接收到的IP包来自外部设备,具体而言,可以是作为外部设备的客户端直接将IP包发送至负载均衡设备,也可以是一级负载均衡设备作为外部设备而对客户端发送的IP包进行转发至负载均衡设备。其中,IP包由IP包的包头和数据两部分组成,其中,IP包的包头可以包含IP包的协议版本、协议、源地址信息、目的地址信息等。IP包的包头中的源地址信息可以为客户端的源IP地址和端口信息,可以用来唯一标识客户端。IP包的包头中的目的地址信息可以为集群的虚拟IP地址,从而使得集群内的真实服务器为客户端提供服务。
步骤S102:所述负载均衡设备根据所述IP包的包头确定所述IP包的目的IP地址为所述负载均衡设备的虚拟IP地址;
本实施例中,负载均衡设备具有虚拟IP地址,同时还可以具有真实的IP地址。其中,虚拟IP地址用于处理外部设备的业务,真实的IP地址用于处理网络文件信息、监控后台管理等业务。通常,前者是由负载均衡设备转发给真实服务器,最终由真实服务器进行处理,而后者是由负载均衡设备自身进行处理。因此,接收模块1接收到一个IP包后,首先判断模块2要根据IP包的包头确定该IP包的目的IP地址是否为负载均衡设备的虚拟IP地址,若是,说明该IP包是外部设备的业务请求,从而其他模块再执行后续的给外部设备分配真实服务器的步骤。
步骤S103:所述负载均衡设备从所述IP包获取能唯一标识客户端的地址信息,并根据所述地址信息获取所述客户端的唯一标识信息;
本实施例中,IP包中包含客户端的IP地址和端口信息,可以作为唯一标识客户端的地址信息。其中,在该IP包没有经由一级负载均衡设备的情况下,负载均衡设备可以从IP包的源地址信息中获取到客户端的IP地址和端口信息,在IP包经由一级负载均衡设备发送到负载均衡设备的情况下,客户端的IP地址和端口信息可以是封装在IP包之中的,例如,可以封装在IP包的包头内,负载均衡设备可以对接收到的IP包进行解封装,从而获取客户端的IP地址和端口信息。负载均衡设备可以把客户端的IP地址和端口信息直接作为客户端的唯一标识信息,但采用这种方式的话,需要较多的存储空间进行存储,而且也不方便检索。因此,负载均衡设备可以通过以下方式根据该地址信息获取客户端的唯一标识信息:采用不可逆算法对该地址信息进行不可逆运算得到外部设备的唯一标识信息。其中,不可逆算法可以包括以下之一:MD4算法、MD5算法、SHA1算法、MAC算法、异或运算。其中,前4种都是基于哈希算法的算法。例如,负载均衡设备可以采用哈希算法(上述前4种之一)对客户端的源IP地址和端口信息进行哈希运算获得对应的哈希值。通过对地址信息进行不可逆运算可以获得相对于地址信息更紧凑的数值表示形式,从而可以节省负载均衡设备的存储空间,此外,利用计算得到的哈希值不仅可以唯一标识客户端,还可以提高查找速度,即负载均衡设备根据哈希值可以更快地查找到对应的目的真实服务器。当然,负载均衡设备也可以通过除不可逆算法之外的算法对地址信息进行运算,例如可逆加密算法等等。本实施例对此算法并不做限制。
步骤S104:所述负载均衡设备在预设的标识信息与真实服务器的MAC地址的对应关系中查找所述客户端的唯一标识信息,在查找到所述唯一标识信息的情况下,获取与所述唯一标识信息对应的真实服务器的MAC地址,其中,所述对应关系中记录的所述真实服务器与所述负载均衡设备在同一个集群中;
本实施例中,负载均衡设备可以维护客户端的唯一标识信息与真实服务器的对应关系,从而方便负载均衡设备快速查找到与客户端对应的真实服务器。具体实施过程中,客户端的唯一标识信息与真实服务器的对应关系可以为客户端的唯一标识信息与真实服务器的MAC地址的对应关系。负载均衡设备在预设的客户端的唯一标识信息与真实服务器的MAC地址的对应关系中查询客户端的唯一标识信息,在查找到客户端的唯一标识信息的情况下,获取与客户端的唯一标识信息对应的真实服务器的MAC地址,并以对应的真实服务器的MAC地址作为目的地址转发IP包。
本实施例中,负载均衡设备可以通过建立表的形式来维护客户端的唯一标识信息与真实服务器的MAC地址对应关系。例如,表格中记录负载均衡设备在步骤S103中获得的客户端的哈希值及相应的真实服务器的MAC地址,如下面的表格所示:
哈希值 | 真实服务器的MAC地址 |
Hash值1 | 00-25-64-76-BD-60 |
Hash值2 | 10-60-4B-7D-0B-92 |
…… | …… |
客户端首次发起业务请求时,客户端可以直接将IP包发送至负载均衡设备,也可以是客户端经过一级负载均衡设备将IP包转发至负载均衡设备,负载均衡设备接收到IP包后,负载均衡设备根据轮询、加权轮询、随机、最少连接、源地址散列等算法进行负载分配,为该客户端分配一个真实服务器作为目的服务器为其服务。同时,负载均衡设备会在表格中为客户端建立一条记录,即增加该客户端的哈希值与对应的真实服务器的MAC地址的一条记录,从而建立客户端的唯一标识信息与真实服务器一一对应的映射关系。在客户端的本次业务结束前,负载均衡设备每次接收到客户端发起的一个IP包,负载均衡设备在该表格中查找到与之对应的真实服务器的MAC地址,进而将该客户端发起的IP包路由到同一个真实服务器,保证了整个业务过程中,均为同一个真实服务器为客户端提供服务,保证了客户端的业务状态连续。
在本实施例的一个可选实施方式中,负载均衡设备在查找到所述唯一标识信息的情况下,在步骤S105之前,所述方法还包括:
步骤S108:所述负载均衡设备判断所述对应的真实服务器的状态是否发生变化,在所述对应的真实服务器的状态没有发生变化的情况下,执行步骤S105。
在该可选实施方式中,负载均衡设备可以定期或者随时接收真实服务器发送的真实服务器的状态信息,从而对真实服务器的状态进行同步。当真实服务器的状态没有发生变化,例如一直处于ESTABLISHED状态时,说明客户端与真实服务器之间一直处于连接状态,客户端的本次业务还没有结束,负载均衡设备本次接收到的IP包不是本次业务的最后一个包,则负载均衡设备将本次接收到的IP包转发给真实服务器,即执行步骤S105。
在本实施例的一个可选实施方式中,负载均衡设备在查找到所述唯一标识信息的情况下,在步骤S105之前,所述负载均衡设备判断在所述对应的真实服务器的状态发生变化的情况下,所述方法还包括:
步骤S109:所述负载均衡设备判断所述对应的真实服务器的状态是否为结束状态,若否,执行步骤S110,否则,执行步骤S111;
步骤S110:所述负载均衡设备更新所述对应的真实服务器的状态,执行步骤S105;
步骤S111:所述负载均衡设备删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录。
在该可选实施方式中,负载均衡设备可以定期或者随时接收真实服务器发送的真实服务器的状态信息,从而对真实服务器的状态进行同步。当真实服务器的状态发生变化时,负载均衡设备判断真实服务器的状态是否为结束状态,如果不是结束状态,例如,真实服务器的状态由SYN_RCVD状态变化为ESTABLISHED状态,说明客户端与真实服务器之间完成了三次握手并建立了连接,则负载均衡设备更新真实服务器的状态,并负载均衡设备将本次接收到的IP包转发给真实服务器。如果是结束状态,例如,真实服务器处于TIME_WAIT状态,说明客户端与真实服务器之间的本次业务已经结束,负载均衡设备本次接收到的IP包是本次业务的最后一个包,因此,负载均衡设备通过删除对应关系中记录的与客户端的唯一标识信息匹配的记录,及时地释放了存储空间,提高了真实服务器的利用存储效率。
步骤S105:所述负载均衡设备将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址,并发送修改后的IP包;
本实施例中,负载均衡设备在预设的标识信息与真实服务器的MAC地址的对应关系中查找到客户端的唯一标识信息的情况下,获取与客户端的唯一标识信息对应的真实服务器的MAC地址,并将IP包的目的MAC地址修改为对应的真实服务器的MAC地址,并按对应的真实服务器的MAC地址发送修改后的IP包,使得负载均衡设备将IP包准确地转发至对应的真实服务器,使得同一个真实服务器为客户端提供服务,保证了客户端的业务状态连续。
在本实施例的一个可选实施方式中,如果负载均衡设备在从所述对应关系中没有查找到所述客户端的唯一标识信息的情况下,所述方法还包括:
步骤S105’:所述负载均衡设备根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,将所述客户端的唯一标识信息与分配的所述真实服务器的MAC地址记录到所述对应关系中,然后将所述IP包的目的MAC地址修改为所述根据负载均衡算法获取的真实服务器的MAC地址,并发送修改后的IP包,执行步骤S106。
在该可选实施方式中,负载均衡设备在从所述对应关系中没有查找到所述客户端的唯一标识信息的情况下,所述负载均衡设备还用于根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,将所述客户端的唯一标识信息与分配的所述真实服务器的MAC地址记录到所述对应关系中,然后将所述IP包的目的MAC地址修改为所述根据负载均衡算法获取的真实服务器的MAC地址,并按所述根据负载均衡算法获取的真实服务器的MAC地址发送修改后的IP包。
在该可选实施方式中,负载均衡设备根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,包括:查询所述集群内的多个真实服务器的可连接数,根据所述负载均衡算法从可连接数大于或等于1的真实服务器中为所述客户端分配所述目的服务器;并将所述目的服务器的可连接数减一。
在该可选实施方式中,如果负载均衡设备在对应关系中没有查找到客户端的唯一标识信息,说明该客户端是首次发起业务请求,则负载均衡设备根据轮询、加权轮询、随机、最少连接、源地址散列等负载均衡算法进行负载分配,为该客户端分配一个真实服务器作为目的服务器为其服务。并且,负载均衡设备可以在表格中为客户端建立一条记录,即增加该客户端的哈希值与分配的真实服务器的MAC地址的一条记录,从而建立客户端的唯一标识信息与分配的真实服务器一一对应的映射关系。
本实施例中,可连接数可以标识一个真实服务器当前还可以最多为几个客户端服务的能力。一般来说,一个真实服务器下挂有多个处理设备,例如,最多可以挂接16个,那么,这个真实服务器最多可以同时给16个客户端提供服务。例如,一个真实服务器可以下挂SAM(居民身份证验证安全控制)设备,用于对客户端发送的身份证信息解密,可连接数可以标识该真实服务器还可以提供的SAM设备的个数,每当为一个客户端提供服务时,在该客户端的一次完整业务流程中,一个SAM设备被占用,该真实服务器的可连接数就减一,当该客户端的业务流程结束,释放该服务器后,被占用的一个SAM设备被释放,该真实服务器的可连接数加一。因此,为了使负载均衡设备维护的集群内的真实服务器的可连接数能够真实的反映真实服务器当前的可连接数,在本发明实施例的一个可选实施方案中,负载均衡设备还用于在为客户端分配一个真实服务器后,将真实服务器的可连接数减一。
在本实施例的一个可选实施方式中,在负载均衡设备删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录之后,所述方法还包括:将所述对应的真实服务器的可连接数加一。通过该可选实施方式,负载均衡设备可以及时地更新集群内的真实服务器的实际可连接数,从而使得集群内的负载均衡更加准确,加强了集群的数据处理能力。
在本实施例的一个可选实施方式中,负载均衡设备可以通过一个节点循环链表记录集群内的各个真实服务器的可连接数,以实现对集群内的负载均衡管理。当集群内的一个真实服务器可连接数为0,则负载均衡设备不再给该真实服务器分配客户端的业务处理,从而缓解了该真实服务器的负载压力,由此实现了该集群内的负载均衡。具体实施过程中,负载均衡设备根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器的流程可以如下:
B1):所述负载均衡设备获取所述集群内的真实服务器的节点循环链表,其中,所述节点循环链表由多个节点组成,每个节点至少包括:集群内的一个真实服务器的IP地址、MAC地址和可连接数,节点循环链表如图8所示。
B2):所述负载均衡设备根据负载均衡算法获取所述节点循环链表中的一个节点;
B3):所述负载均衡设备将根据负载均衡算法获取的所述节点的可连接数减一;
B4):所述负载均衡设备判断根据负载均衡算法获取的所述节点当前的可连接数是否大于等于0,若是,则所述负载均衡设备将根据负载均衡算法获取的所述节点对应的真实服务器分配给所述客户端,若否,则进行B5);
B5):所述负载均衡设备判断所述节点循环链表中的节点数目是否超过所述节点循环链表的长度,若未超过,则返回执行步骤B2),若超过,则执行步骤B6);
B6):所述负载均衡设备丢弃所述IP包,或者将所述IP包放入排队***。
通过该可选实施方式,在客户端首次发起业务请求时,负载均衡设备可以根据集群内的真实服务器的可连接数快速给客户端分配一个可用的真实服务器为其提供服务。
步骤S106:所述对应的真实服务器接收并解析所述修改后的IP包,并对解析得到的数据进行响应,得到响应数据;
步骤S107:所述对应的真实服务器封装所述响应数据,得到并发送响应IP包,其中,所述响应IP包的目的IP地址为所述修改后的IP包的源IP地址,所述响应IP包的源IP地址为所述对应的真实服务器的虚拟IP地址。
本实施例中,真实服务器可以从修改后的IP包中获取修改前的IP包的源IP地址,即客户端的IP地址,并将客户端的IP地址作为响应IP包的目的IP地址直接返回给客户端。因此,负载均衡设备只负责接收客户端发送的IP包,并不负责将响应IP包返回给客户端,而是由真实服务器对响应IP包进行直接的路由返回,提高了客户端与真实服务器之间的数据传输速率。
在本实施例的一个可选实施方式中,在步骤S101之前,所述方法还包括以下步骤(S201~S202):
步骤S201:所述负载均衡设备启动端口服务;
步骤S202:所述负载均衡设备初始化所述集群内的真实服务器的可连接数,初始化所述对应关系。
在该可选实施方式中,负载均衡设备开机后,进行初始化,并启动端口服务,使得端口处于可用状态,便于接收各种信息。
在该可选实施方式中,负载均衡设备还会初始化集群内的真实服务器的可连接数,便于负载均衡设备根据每个真实服务器的可连接数进行负载均衡,提高集群的负载均衡能力。
在本实施例的一个可选实施方式中,所述方法还包括以下步骤(S301~S302):
步骤S301:所述负载均衡设备监听端口;
步骤S302:所述负载均衡设备接收所述集群内的真实服务器发送的集群信息,所述集群信息至少包括真实服务器的IP地址、MAC地址、可连接数和真实服务器的状态,并根据所述集群信息对所述集群内的各个真实服务器的可连接数及状态进行同步。
在该可选实施方式中,步骤S301~S302与步骤S101~S111没有先后关系,可以同步执行。
在该可选实施方式中,负载均衡设备可以定期或者随时接收真实服务器发送的集群信息,从而对集群内的各个真实服务器的可连接数及状态进行同步,使得负载均衡设备随时掌握集群内的真实服务器的负载情况,方便了负载均衡设备进行合理的负载均衡。
在本实施例的一个可选实施方式中,所述方法还包括:步骤S401:所述负载均衡设备判断所述对应关系中的各项记录是否超时,并删除所述对应关系中已超时的记录。
在该可选实施方式中,步骤S401与其他步骤没有先后关系,只要当对应关系中增加一条记录后,就可以执行步骤S401。具体实施过程中,负载均衡设备可以在对应关系中增加一条记录后,开启计时器,超过预设时间后,若该记录仍然存在于对应关系中,则负载均衡设备将已超时的该记录删除。通过该可选实施方式,负载均衡设备及时删除超时的记录,释放了存储空间,提高了存储空间的利用率。
在本实施例的一个可选实施方式中,一级负载均衡设备和集群内的负载均衡设备(即二级负载均衡设备)类似,为了保证客户端的业务状态连续,在客户端首次发起一个业务请求时,一级负载均衡设备根据负载均衡算法为客户端分配一个集群,在本次业务完成之前,客户端再次与集群进行数据交互时,一级负载均衡设备根据客户端的唯一标识信息与首次分配给客户端的集群的对应关系确定集群,从而使得在客户端发起一个业务请求到本次业务结束的过程中,同一个集群为其提供服务,保证了客户端的业务状态连续。
下面以一个实际应用进行举例,对客户端发送一个IP包到客户端接收到响应IP包的过程进行说明,如图5所示:
客户端30的源IP地址为172.16.11.247;一级负载均衡设备40的IP地址为192.168.2.2;集群负载均衡***100的负载均衡设备(二级负载均衡设备)10和真实服务器20的虚拟IP地址为192.168.1.88;二级负载均衡设备10的MAC地址为20-60-64-76-BD-80;某一个真实服务器20的MAC地址为00-25-64-76-BD-60;
①客户端30发送一个IP包1,IP包1的源IP地址为172.16.11.247,目的IP地址为192.168.2.2,IP包1的格式如下:
…… | 源IP地址 | 目的IP地址 | …… |
…… | 172.16.11.247 | 192.168.2.2 | …… |
②一级负载均衡设备40接收到IP包1后,为客户端30分配集群负载均衡***100,对IP包1的目的IP地址进行修改,修改为集群负载均衡***100的虚拟IP地址,获得IP包2,即一级负载均衡设备40向二级负载均衡设备10发送的IP包2的源IP地址为192.168.2.2,目的IP地址为192.168.1.88,目的MAC地址为二级负载均衡设备10的MAC地址,IP包2的格式如下:
…… | 源IP地址 | 目的IP地址 | 目的MAC地址 | …… |
…… | 192.168.2.2 | 192.168.1.88 | 20-60-64-76-BD-80 | …… |
③二级负载均衡设备10接收到IP包2后,为客户端30分配真实服务器1,对IP包2的目的MAC地址进行修改,修改为某一个真实服务器20的MAC地址,获得IP包3,即二级负载均衡设备10向真实服务器20发送的IP包3的源IP地址为192.168.2.2,目的IP地址为192.168.1.88,目的MAC地址为该真实服务器20的MAC地址,IP包3的格式如下:
…… | 源IP地址 | 目的IP地址 | 目的MAC地址 | …… |
…… | 192.168.2.2 | 192.168.1.88 | 00-25-64-76-BD-60 | …… |
④该真实服务器20接收到IP包3后,解析IP包3,并生成响应IP包,即IP包4,即真实服务器20返回给一级负载均衡设备40的IP包4的源IP地址为192.168.1.88,目的IP地址为192.168.2.2,IP包4的格式如下:
…… | 源IP地址 | 目的IP地址 | …… |
…… | 192.168.1.88 | 192.168.2.2 | …… |
⑤一级负载均衡设备40接收IP包4,生成响应IP包5,即一级负载均衡设备40返回给客户端30的响应IP包5的源IP地址为192.168.2.2,目的IP地址为172.16.11.247,IP包5的格式如下:
…… | 源IP地址 | 目的IP地址 | …… |
…… | 192.168.2.2 | 172.16.11.247 | …… |
由上述实施例提供的技术方案可以看出,通过本发明提供的集群内负载均衡方法,负载均衡设备创建并维护客户端的唯一标识信息与真实服务器的MAC地址的对应关系,实现在客户端的一次业务完成之前,负载均衡设备根据客户端的唯一标识信息与真实服务器的MAC地址的对应关系,将从同一客户端接收到的数据包路由到同一台真实服务器,从而使得在客户端发起一个业务请求到本次业务结束的过程中,同一个真实服务器为其提供服务,保证了客户端的业务状态连续。此外,通过对各个真实服务器的可连接数的维护,可以根据真实服务器的可连接数实现对一个集群服务器的动态负载均衡。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。
Claims (13)
1.一种集群内负载均衡方法,应用于包含一个负载均衡设备和多个真实服务器的集群,其中,所述集群中的所有负载均衡设备和真实服务器的虚拟IP地址相同;其特征在于,所述方法包括:
步骤S101:所述负载均衡设备接收IP包,并从所述IP包获取所述IP包的包头;
步骤S102:所述负载均衡设备根据所述IP包的包头确定所述IP包的目的IP地址为所述负载均衡设备的虚拟IP地址;
步骤S103:所述负载均衡设备从所述IP包获取能唯一标识客户端的地址信息,并根据所述地址信息获取所述客户端的唯一标识信息;
步骤S104:所述负载均衡设备在预设的标识信息与真实服务器的MAC地址的对应关系中查找所述客户端的唯一标识信息,在查找到所述唯一标识信息的情况下,获取与所述唯一标识信息对应的真实服务器的MAC地址,其中,所述对应关系中记录的所述真实服务器与所述负载均衡设备在同一个集群中;
步骤S105:所述负载均衡设备将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址,并发送修改后的IP包;
步骤S106:所述对应的真实服务器接收并解析所述修改后的IP包,并对解析得到的数据进行响应,得到响应数据;
步骤S107:所述对应的真实服务器封装所述响应数据,得到并发送响应IP包,其中,所述响应IP包的目的IP地址为所述修改后的IP包的源IP地址,所述响应IP包的源IP地址为所述对应的真实服务器的虚拟IP地址。
2.根据权利要求1所述的方法,其特征在于,在步骤S104中,在从所述对应关系中没有查找到所述客户端的唯一标识信息的情况下,所述方法还包括:
步骤S105’:所述负载均衡设备根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,将所述客户端的唯一标识信息与分配的所述真实服务器的MAC地址记录到所述对应关系中,然后将所述IP包的目的MAC地址修改为所述根据负载均衡算法获取的真实服务器的MAC地址,并发送修改后的IP包,执行步骤S106。
3.根据权利要求2所述的方法,其特征在于,所述负载均衡设备根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,包括:
查询所述集群内的多个真实服务器的可连接数,根据所述负载均衡算法从可连接数大于或等于1的真实服务器中为所述客户端分配所述目的服务器;并将所述目的服务器的可连接数减一。
4.根据权利要求1至3任一项所述的方法,其特征在于,在查找到所述唯一标识信息的情况下,在步骤S105之前,所述方法还包括:
步骤S108:所述负载均衡设备判断所述对应的真实服务器的状态是否发生变化,在所述对应的真实服务器的状态没有发生变化的情况下,执行步骤S105。
5.根据权利要求4所述的方法,其特征在于,在所述对应的真实服务器的状态发生变化的情况下,所述方法还包括:
步骤S109:所述负载均衡设备判断所述对应的真实服务器的状态是否为结束状态,若否,执行步骤S110,否则,执行步骤S111;
步骤S110:所述负载均衡设备更新所述对应的真实服务器的状态,执行步骤S105;
步骤S111:所述负载均衡设备删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录。
6.根据权利要求5所述的方法,其特征在于,在所述删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录之后,所述方法还包括:
将所述对应的真实服务器的可连接数加一。
7.一种负载均衡设备,应用于包含一个负载均衡设备和多个真实服务器的集群,其中,所述集群中的所有负载均衡设备和真实服务器的虚拟IP地址相同;其特征在于,所述设备包括:
接收模块,用于接收IP包,并从所述IP包获取所述IP包的包头;
判断模块,用于根据所述IP包的包头确定所述IP包的目的IP地址为所述负载均衡设备的虚拟IP地址;
获取模块,用于从所述IP包获取能唯一标识客户端的地址信息,并根据所述地址信息获取所述客户端的唯一标识信息;
负载均衡模块,用于在预设的标识信息与真实服务器的MAC地址的对应关系中查找所述客户端的唯一标识信息,在查找到所述唯一标识信息的情况下,获取与所述唯一标识信息对应的真实服务器的MAC地址,将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址,得到修改后的IP包;其中,所述对应关系中记录的所述真实服务器与所述负载均衡设备在同一个集群中;
发送模块,用于发送所述负载均衡模块得到的修改后的IP包。
8.根据权利要求7所述的设备,其特征在于,所述负载均衡模块还用于:在从所述对应关系中没有查找到所述客户端的唯一标识信息的情况下,根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,将所述客户端的唯一标识信息与分配的所述真实服务器的MAC地址记录到所述对应关系中,将所述IP包的目的MAC地址修改为所述根据负载均衡算法获取的真实服务器的MAC地址,并得到修改后的IP包。
9.根据权利要求8所述的设备,其特征在于,所述负载均衡模块根据负载均衡算法为所述客户端分配所述集群内的一个真实服务器,包括:
查询所述集群内的多个真实服务器的可连接数,根据所述负载均衡算法从可连接数大于或等于1的真实服务器中为所述客户端分配所述目的服务器;并将所述目的服务器的可连接数减一。
10.根据权利要求7至9任一项所述的设备,其特征在于,所述负载均衡模块还用于:在查找到所述唯一标识信息的情况下,判断所述对应的真实服务器的状态是否发生变化,在所述对应的真实服务器的状态没有发生变化的情况下,执行将所述IP包的目的MAC地址修改为所述对应的真实服务器的MAC地址的操作。
11.根据权利要求10所述的设备,其特征在于,所述负载均衡模块还用于:在判断所述对应的真实服务器的状态发生变化的情况下,判断所述对应的真实服务器的状态是否为结束状态,若否,则更新所述对应的真实服务器的状态,否则,删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录。
12.根据权利要求11所述的设备,其特征在于,所述负载均衡模块还用于:在删除所述对应关系中记录的与所述客户端的唯一标识信息匹配的记录之后,将所述对应的真实服务器的可连接数加一。
13.一种集群负载均衡***,其特征在于,包括权利要求7至12任一项所述的设备以及集群内的真实服务器,其中,所述真实服务器用于:接收并解析修改后的IP包,并对解析得到的数据进行响应,得到响应数据;封装所述响应数据,得到并发送响应IP包,其中,所述响应IP包的目的IP地址为所述修改后的IP包的源IP地址,所述响应IP包的源IP地址为所述对应的真实服务器的虚拟IP地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058884.XA CN106790675A (zh) | 2017-01-23 | 2017-01-23 | 一种集群内负载均衡方法、设备和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058884.XA CN106790675A (zh) | 2017-01-23 | 2017-01-23 | 一种集群内负载均衡方法、设备和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106790675A true CN106790675A (zh) | 2017-05-31 |
Family
ID=58941817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710058884.XA Pending CN106790675A (zh) | 2017-01-23 | 2017-01-23 | 一种集群内负载均衡方法、设备和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106790675A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547428A (zh) * | 2017-07-05 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种报文发送方法、装置、负载均衡lb设备及网关设备 |
CN107579924A (zh) * | 2017-09-29 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 一种流量调拨方法和装置 |
CN108600308A (zh) * | 2018-03-20 | 2018-09-28 | 新华三技术有限公司 | 数据上传方法、装置、存储介质和服务器 |
CN109067621A (zh) * | 2018-09-28 | 2018-12-21 | 郑州云海信息技术有限公司 | 设备监控方法、装置及*** |
CN109818997A (zh) * | 2017-11-21 | 2019-05-28 | 中兴通讯股份有限公司 | 一种负载均衡方法、***及存储介质 |
CN109981701A (zh) * | 2017-12-27 | 2019-07-05 | 新智数字科技有限公司 | 透传方法、透传***和代理服务器 |
WO2019227928A1 (zh) * | 2018-05-29 | 2019-12-05 | 华为技术有限公司 | 一种负载均衡方法及其装置 |
CN110708393A (zh) * | 2019-10-21 | 2020-01-17 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和*** |
CN111034160A (zh) * | 2017-08-31 | 2020-04-17 | 微软技术许可有限责任公司 | 在负载均衡连接上具有虚拟vip和源代理的非dsr分布式负载均衡器 |
CN111193756A (zh) * | 2018-11-14 | 2020-05-22 | 中移(杭州)信息技术有限公司 | 一种vxlan隧道负载均衡方法及相关设备 |
CN112003923A (zh) * | 2020-08-18 | 2020-11-27 | 东软睿驰汽车技术(沈阳)有限公司 | 车友组队终端与服务器集群的交互方法、装置和电子设备 |
WO2021083281A1 (zh) * | 2019-10-31 | 2021-05-06 | 贵州白山云科技股份有限公司 | 一种负载均衡方法、装置、介质和设备 |
CN114095419A (zh) * | 2021-11-12 | 2022-02-25 | 软通动力信息技术(集团)股份有限公司 | 一种集群路由方法、装置、***及存储介质 |
WO2022047635A1 (zh) * | 2020-09-01 | 2022-03-10 | 苏州铭冠软件科技有限公司 | 一种轨道交通网络***ip地址复用方法 |
CN115134424A (zh) * | 2022-06-29 | 2022-09-30 | 中国工商银行股份有限公司 | 负载均衡方法、装置、计算机设备、存储介质和程序产品 |
WO2023241064A1 (zh) * | 2022-06-14 | 2023-12-21 | 中兴通讯股份有限公司 | 业务请求处理方法、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491053A (zh) * | 2012-06-08 | 2014-01-01 | 北京百度网讯科技有限公司 | Udp负载均衡方法、***及装置 |
CN103618778A (zh) * | 2013-11-21 | 2014-03-05 | 上海爱数软件有限公司 | 利用Linux虚拟主机实现数据高并发的***及方法 |
CN104301414A (zh) * | 2014-10-21 | 2015-01-21 | 无锡云捷科技有限公司 | 基于网络协议栈的服务器负载均衡方法 |
CN105530311A (zh) * | 2015-12-25 | 2016-04-27 | 北京奇虎科技有限公司 | 负载分配方法和设备 |
-
2017
- 2017-01-23 CN CN201710058884.XA patent/CN106790675A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491053A (zh) * | 2012-06-08 | 2014-01-01 | 北京百度网讯科技有限公司 | Udp负载均衡方法、***及装置 |
CN103618778A (zh) * | 2013-11-21 | 2014-03-05 | 上海爱数软件有限公司 | 利用Linux虚拟主机实现数据高并发的***及方法 |
CN104301414A (zh) * | 2014-10-21 | 2015-01-21 | 无锡云捷科技有限公司 | 基于网络协议栈的服务器负载均衡方法 |
CN105530311A (zh) * | 2015-12-25 | 2016-04-27 | 北京奇虎科技有限公司 | 负载分配方法和设备 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547428A (zh) * | 2017-07-05 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种报文发送方法、装置、负载均衡lb设备及网关设备 |
CN107547428B (zh) * | 2017-07-05 | 2022-03-22 | 新华三信息安全技术有限公司 | 一种报文发送方法、装置、负载均衡lb设备及网关设备 |
CN111034160B (zh) * | 2017-08-31 | 2022-04-08 | 微软技术许可有限责任公司 | 在负载均衡连接上具有虚拟vip和源代理的非dsr分布式负载均衡器 |
CN111034160A (zh) * | 2017-08-31 | 2020-04-17 | 微软技术许可有限责任公司 | 在负载均衡连接上具有虚拟vip和源代理的非dsr分布式负载均衡器 |
CN107579924B (zh) * | 2017-09-29 | 2021-06-29 | 创新先进技术有限公司 | 一种流量调拨方法和装置 |
CN107579924A (zh) * | 2017-09-29 | 2018-01-12 | 阿里巴巴集团控股有限公司 | 一种流量调拨方法和装置 |
CN109818997A (zh) * | 2017-11-21 | 2019-05-28 | 中兴通讯股份有限公司 | 一种负载均衡方法、***及存储介质 |
CN109981701A (zh) * | 2017-12-27 | 2019-07-05 | 新智数字科技有限公司 | 透传方法、透传***和代理服务器 |
CN108600308A (zh) * | 2018-03-20 | 2018-09-28 | 新华三技术有限公司 | 数据上传方法、装置、存储介质和服务器 |
WO2019227928A1 (zh) * | 2018-05-29 | 2019-12-05 | 华为技术有限公司 | 一种负载均衡方法及其装置 |
US11659441B2 (en) | 2018-05-29 | 2023-05-23 | Huawei Technologies Co., Ltd. | Load balance method and apparatus thereof |
CN109067621A (zh) * | 2018-09-28 | 2018-12-21 | 郑州云海信息技术有限公司 | 设备监控方法、装置及*** |
CN111193756A (zh) * | 2018-11-14 | 2020-05-22 | 中移(杭州)信息技术有限公司 | 一种vxlan隧道负载均衡方法及相关设备 |
CN110708393A (zh) * | 2019-10-21 | 2020-01-17 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和*** |
US11483382B2 (en) | 2019-10-21 | 2022-10-25 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method, apparatus and system for transmitting data |
CN110708393B (zh) * | 2019-10-21 | 2023-11-21 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和*** |
WO2021083281A1 (zh) * | 2019-10-31 | 2021-05-06 | 贵州白山云科技股份有限公司 | 一种负载均衡方法、装置、介质和设备 |
CN112003923A (zh) * | 2020-08-18 | 2020-11-27 | 东软睿驰汽车技术(沈阳)有限公司 | 车友组队终端与服务器集群的交互方法、装置和电子设备 |
WO2022047635A1 (zh) * | 2020-09-01 | 2022-03-10 | 苏州铭冠软件科技有限公司 | 一种轨道交通网络***ip地址复用方法 |
CN114095419A (zh) * | 2021-11-12 | 2022-02-25 | 软通动力信息技术(集团)股份有限公司 | 一种集群路由方法、装置、***及存储介质 |
CN114095419B (zh) * | 2021-11-12 | 2023-11-28 | 软通动力信息技术(集团)股份有限公司 | 一种集群路由方法、装置、***及存储介质 |
WO2023241064A1 (zh) * | 2022-06-14 | 2023-12-21 | 中兴通讯股份有限公司 | 业务请求处理方法、电子设备和存储介质 |
CN115134424A (zh) * | 2022-06-29 | 2022-09-30 | 中国工商银行股份有限公司 | 负载均衡方法、装置、计算机设备、存储介质和程序产品 |
CN115134424B (zh) * | 2022-06-29 | 2024-02-02 | 中国工商银行股份有限公司 | 负载均衡方法、装置、计算机设备、存储介质和程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790675A (zh) | 一种集群内负载均衡方法、设备和*** | |
CN105210337B (zh) | 一种nfv***的业务实现方法及通信单元 | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
CN105610632B (zh) | 一种虚拟网络设备及相关方法 | |
CN107070983A (zh) | 一种基于地址转发的负载均衡方法、设备和*** | |
CN106713499A (zh) | 一种负载均衡方法、设备及*** | |
US10206131B2 (en) | System and method for programmable native analytics in 5G mobile networks | |
US20180109456A1 (en) | System, method, and device for network load balance processing | |
US20210314214A1 (en) | IPSEC Acceleration Method, Apparatus, and System | |
CN106973053B (zh) | 宽带接入服务器的加速方法和*** | |
WO2021008591A1 (zh) | 数据传输方法、装置及*** | |
US11870701B2 (en) | Data transmission method, switch, and site | |
CN111786867B (zh) | 一种数据传输方法及服务器 | |
CN108882305A (zh) | 一种数据包的分流方法及装置 | |
CN102447638A (zh) | 负载均衡的方法及转发设备 | |
CN113810512A (zh) | 物联网终端接入***、方法、装置及存储介质 | |
CN110324227A (zh) | 一种vpn服务器中的数据传输方法及vpn服务器 | |
CN105162702A (zh) | 一种ac引流方法及装置 | |
CN106464596A (zh) | 开放流通信方法、***、控制器和业务网关 | |
CN105491169A (zh) | 一种数据代理方法与*** | |
CN102857547B (zh) | 分布式缓存的方法及设备 | |
CN106797384A (zh) | 以不同的协议将请求路由到集群中的相同端点 | |
CN112583655A (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
CN108432212A (zh) | 基于流控制传输协议sctp的通信方法、装置和*** | |
CN108781215A (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: 20170531 |