CN115883559A - 无状态网络负载均衡方法、装置和存储介质 - Google Patents
无状态网络负载均衡方法、装置和存储介质 Download PDFInfo
- Publication number
- CN115883559A CN115883559A CN202211584636.6A CN202211584636A CN115883559A CN 115883559 A CN115883559 A CN 115883559A CN 202211584636 A CN202211584636 A CN 202211584636A CN 115883559 A CN115883559 A CN 115883559A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- message
- address
- server
- connection
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种无状态网络负载均衡方法、装置和存储介质,其中,无状态网络负载均衡方法包括:所述第二处理单元在所述数据包的报文表征所述数据包为已有连接的报文时,解码所述已有连接的报文,得到所述处理服务器的I P地址,并基于所述第一映射表将所述已有连接的报文携带的虚拟I P地址替换为所述处理服务器的I P地址,并将修改后的所述已有连接的报文发送至所述处理服务器等步骤。本申请至少能够在实现ULD和PCC的前提下,实现支持任意复杂度的负载均衡决策算法,并适应大型网络应用系统的高动态变化。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种无状态网络负载均衡方法、装置和存储介质。
背景技术
随着云计算和大数据以及网络技术的发展,大型网络应用系统的处理规模越来越大,如阿里、腾讯、京东、百度等的网络应用平台都是由成千上万台服务器通过网络向客户提供高性能和高可靠的服务。在此类应用系统中的关键设备之一是网络负载均衡器(LoadBalancer),网络负载均衡器负责将来自客户的网络流量以某种均衡的算法分配给服务器进行处理,均衡服务器的负载,防止服务器出现过载或欠载;在网络应用系统出现部分故障或网络业务出现波动时,通过负载均衡器调整网络应用系统的流量和流向,可以使整个网络应用系统具有弹性,提高系统的高可用性和可靠性。
进一步地,理想的网络负载均衡器应满足如下要求:
(1)ULD(uniform load distribution),将网络流量均衡的分发给服务器,如每台服务器处理的网络连接数量是统计上相同的,或者每台服务器处理的网络流量在带宽上是统计上相同的,等等。
(2)PCC(Per-Connection-Consistency),每个连接一致性,既在整个连接存续期间,属于此连接的网络流量只在一个服务器上处理;在网络应用系统的活动服务器和LBs的数目发生变化时,也应该保持PCC。
然而,现有的网络负载均衡器使用复杂的负载均衡算法,如WRR加权轮换、Powerof Two Choice(随机2选1)、最小负载等算法,其中,复杂的负载均衡算法增加了网络负载均衡器乃至应用系统的复杂性,使网络负载均衡器的处理性能低下,不能满足日益增长的网络处理能力的需求,不能适应大型网络应用系统的高动态变化。
发明内容
本申请实施例的目的在于提供一种无状态网络负载均衡方法、装置和存储介质,用以在实现ULD和PCC的前提下,实现支持任意复杂度的负载均衡决策算法,并适应大型网络应用系统的高动态变化。
第一方面,本发明提供一种无状态网络负载均衡方法,所述方法应用于无状态网络负载均衡器中,所述无状态网络负载均衡器包括第一处理单元和第二处理单元,所述第一处理单元为CPU,所述第二处理单元为支持P4编程语言的可编程交换机,或现场可编程门阵列,其中,所述方法包括:
所述第二处理单元获取客户端发送的数据包,并判断所述数据包的报文类型;
所述第二处理单元在所述数据包的报文类型表征所述数据包为新建连接的报文时,将所述新建连接的报文发送至所述第一处理单元,以使所述第一处理单元基于预设负载均衡算决策法确定所述新建连接的报文的处理服务器的IP地址,并使所述第一处理单元基于第一映射表将所述新建连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址,和使所述第一处理单元将修改后的所述新建连接的报文发送至所述第二处理单元,所述第二处理单元将修改后的所述新建连接的报文发送至所述处理服务器;
所述第二处理单元在所述数据包的报文表征所述数据包为已有连接的报文时,解码所述已有连接的报文,得到所述处理服务器的IP地址,并基于所述第一映射表将所述已有连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址,并将修改后的所述已有连接的报文发送至所述处理服务器。
本申请第一方面的方法能够通过第一处理单元,执行负载均衡决策算法,进而能够在数据包为新建连接的报文时,确定新建连接的报文的处理服务器的IP地址,从而实现ULD,另一方面,通过第二处理单元能够将已有连接的报文分配给已有连接对应的服务器,从而实现PCC。
与现有技术相比,由于本申请的第一处理单元仅为新建连接分配服务器,而不会为已有连接查询相应的服务器,因此,能够保证第一处理单元的性能,从而使得第一处理单元能够支持任意复杂度的负载均衡决策算法,并适应大型网络应用系统的高动态变化。
在本申请第一方面中,作为一种可选的实施方式,所述方法还包括:
所述第二处理单元获取所述处理服务器针对所述新建连接的报文发送的响应报文;
所述第二处理单元提取所述响应报文的源IP地址;
所述第二处理单元基于所述响应报文的源IP地址,确定第一服务器标识符;
所述第二处理单元提取所述响应报文的五元组信息,并基于所述响应报文的五元组信息,生成第一连接标识符,并基于所述第一连接标识符和预设Hash算法计算得到第一哈希ID;
所述第二处理单元将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息;
所述第二处理单元将连接信息嵌入到所述响应报文,并基于所述第一映射表将所述响应报文携带的所述处理服务器的IP地址,替换为所述虚拟IP地址,以使所述客户端接收到携带所述连接信息的所述响应报文,并使所述客户端基于连接信息发送所述数据包。
在上述可选的实施方式中,第二处理单元在接收到处理服务器发送的响应报文时,能够基于响应报文中的五元组信息和预设Hash算法计算得到第一哈希ID,进而能够将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息,从而能够将连接信息嵌入到所述响应报文,另一方面,第二处理单元还能够基于第一映射表将响应报文携带的处理服务器的IP地址,替换为所述虚拟IP地址,以使客户端能够接收到携带所述连接信息的所述响应报文,进而客户端能够基于连接信息发送数据包。
与现有技术相比,本申请能够将第二处理单元所需的连接到服务器的映射关系以连接信息的形式存储在数据报文中,从而无需在无状态负载均衡器上集中存储大量的连接与服务器的映射关系数据。
在本申请第一方面中,作为一种可选的实施方式,所述第二处理单元解码所述已有连接的报文,得到所述处理服务器的IP地址,包括:
所述第二处理单元提取所述已有连接的报文的五元组信息;
所述第二处理单元基于所述已有连接的报文的五元组信息生成第二连接标识符,并基于所述第二连接标识符和所述预设Hash算法计算得到第二哈希ID;
所述第二处理单元提取所述已有连接的报文携带的所述连接信息;
所述第二处理单元将所述连接信息与所述第二哈希ID进行异或运算,得到第二服务器标识符;
所述第二处理单元基于所述第二服务器标识符确定所述处理服务器的IP地址。
在上述可选的实施方式中,第二处理单元能够提取所述已有连接的报文的五元组信息,进而能够基于所述已有连接的报文的五元组信息生成第二连接标识符,和能够基于所述第二连接标识符和所述预设Hash算法计算得到第二哈希ID,进而通过提取所述已有连接的报文携带的所述连接信息,能够将将连接信息与所述第二哈希ID进行异或运算,得到第二服务器标识符,进而能够基于所述第二服务器标识符确定所述处理服务器的IP地址,即确定已有连接的报文的处理服务器。
与现有技术相比,本申请在将第二处理单元所需的连接到服务器的映射关系以连接信息的形式存储在数据报文的基础上,能够通过解码数据报文携带的连接信息,确定已有连接对应的处理服务器。
在本申请第一方面中,作为一种可选的实施方式,所述第二处理单元基于所述第二服务器标识符确定所述处理服务器的IP地址,包括:
所述第二处理单元基于所述第二服务器标识符查询第二映射表,得到所述处理服务器的IP地址。
在上述可选的实施方式中,基于所述第二服务器标识符查询第二映射表,能够查询得到处理服务器的IP地址。
在本申请第一方面中,作为一种可选的实施方式,所述第二处理单元基于所述响应报文的源IP地址,确定第一服务器标识符,包括:
所述第二处理单元基于所述响应报文的源IP地址,查询所述第二映射表,得到所述第一服务器标识符。
在上述可选的实施方式中,基于所述响应报文的源IP地址和第二映射表,能够得到所述第一服务器标识符。
在本申请第一方面中,作为一种可选的实施方式,所述第二处理单元判断所述数据包的报文类型,包括:
所述第二处理单元基于TCP-Sync报文判断所述数据包的报文类型。
在上述可选的实施方式,可基于TCP-Sync报文判断所述数据包的报文类型。
在可选的实施方式中,所述第二处理单元判断所述数据包的报文类型,包括:
所述第二处理单元基于所述数据包中的Option字段判断所述数据包的报文类型。
在上述可选的实施方式中,可基于所述数据包中的Option字段判断所述数据包的报文类型。
第二方面,本发明提供一种无状态网络负载均衡装置,所述装置包括负载均衡决策模块、新建连接判断模块和PCC模块,所述负载均衡决策模块应用于无状态网络负载均衡器中的第一处理单元,所述新建连接判断模块和所述PCC模块应用于所述无状态网络负载均衡器中的第二处理单元,所述第一处理单元为CPU,所述第二处理单元为支持P4编程语言的可编程交换机,或现场可编程门阵列,其中:
所述新建连接判断模块,用于获取客户端发送的数据包,并判断所述数据包的报文类型,并在所述数据包的报文类型表征所述数据包为新建连接的报文时,将所述新建连接的报文发送至所述第一处理单元;
所述负载均衡决策模块,用于基于预设负载均衡算决策法确定所述新建连接的报文的处理服务器的IP地址,并基于第一映射表将所述新建连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址,和将修改后的所述新建连接的报文发送至所述PCC模块;
所述PCC模块用于将修改后的所述新建连接的报文发送至所述处理服务器;
所述PCC模块还用于在所述数据包的报文表征所述数据包为已有连接的报文时,解码所述已有连接的报文,得到所述处理服务器的IP地址,并基于所述第一映射表将所述已有连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址;
所述PCC模块还用于将所述已有连接的报文发送至所述处理服务器。
本申请第二方面的装置能够通过负载均衡决策模块,执行负载均衡决策算法,进而能够在数据包为新建连接的报文时,确定新建连接的报文的处理服务器的IP地址,从而实现ULD,另一方面,通过PCC模块能够将已有连接的报文分配给已有连接对应的服务器,从而实现PCC。
与现有技术相比,由于本申请实施例的负载均衡决策模块仅为新建连接分配服务器,而不会为已有连接查询相应的服务器,因此,能够保证第一处理单元的性能,从而使得第一处理单元能够支持任意复杂度的负载均衡决策算法,并适应大型网络应用系统的高动态变化。
在本申请第二方面中,作为一种可选的实施方式,所述PCC模块还用于取所述处理服务器针对所述新建连接的报文发送的响应报文;
所述PCC模块还用于提取所述响应报文的源IP地址;
所述PCC模块还用于基于所述响应报文的源IP地址,确定第一服务器标识符;
所述PCC模块还用于提取所述响应报文的五元组信息,并基于所述响应报文的五元组信息,生成第一连接标识符,并基于所述第一连接标识符和预设Hash算法计算得到第一哈希ID;
所述PCC模块还用于将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息;
所述PCC模块还用于将连接信息嵌入到所述响应报文,并基于所述第一映射表将所述响应报文携带的所述处理服务器的IP地址,替换为所述虚拟IP地址,以使所述客户端接收到携带所述连接信息的所述响应报文,并使所述客户端基于连接信息发送所述数据包。
在上述可选的实施方式中,PCC模块在接收到处理服务器发送的响应报文时,能够基于响应报文中的五元组信息和预设Hash算法计算得到第一哈希ID,进而能够将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息,从而能够将连接信息嵌入到所述响应报文,另一方面,PCC模块还能够基于第一映射表将响应报文携带的处理服务器的IP地址,替换为所述虚拟IP地址,以使客户端能够接收到携带所述连接信息的所述响应报文,进而客户端能够基于连接信息发送数据包。
与现有技术相比,本申请能够将PCC模块所需的连接到服务器的映射关系以连接信息的形式存储在数据报文中,从而无需在无状态负载均衡器上集中存储大量的连接与服务器的映射关系数据。
第三方面,本发明提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如前述实施方式任一项所述的无状态网络负载均衡方法。
本申请第三方面的存储介质能够通过第一处理单元,执行负载均衡决策算法,进而能够在数据包为新建连接的报文时,确定新建连接的报文的处理服务器的IP地址,从而实现ULD,另一方面,通过第二处理单元能够将已有连接的报文分配给已有连接对应的服务器,从而实现PCC。
与现有技术相比,由于本申请的第一处理单元仅为新建连接分配服务器,而不会为已有连接查询相应的服务器,因此,能够保证第一处理单元的性能,从而使得第一处理单元能够支持任意复杂度的负载均衡决策算法,并适应大型网络应用系统的高动态变化。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例提供的一种无状态网络负载均衡器的框架示意图;
图2是本申请实施例公开的一种无状态网络负载均衡方法的流程示意图;
图3是本申请实施例公开的一种无状态网络负载均衡装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,图1是本申请实施例提供的一种无状态网络负载均衡器的框架示意图。如图1所示,该无状态网络负载均衡器包括P4编程语言的可编程交换机(P4 Switch),即第二处理单元,该无状态网络负载均衡器还包括CPU(central processing unit,中央处理器),即第一处理单元,其中,CPU与P4编程语言的可编程交换机通信连接,从而CPU可与P4编程语言的可编程交换机进行数据交互。
进一步地,如图1所示,无状态网络负载均衡器通过网络接口与客户端通信连接,和通过网络接口与服务器集群通信连接,其中,服务器集群包括了n个服务器,每个服务器可作为提供服务的服务端。进一步地,如图1所示,当无状态网络负载均衡器通过网络接口接收到客户端发送的网络流量时,其在n个服务器中选择一个服务器作为该网络流量的处理服务器,以实现负载均衡。
进一步地,第一处理单元还可以是现场可编程门阵列(FPGA,Field ProgrammableGate Array)。
需要说明的是,无状态网络负载均衡器是指不追踪网络连接的状态的网络负载均衡器。
实施例一
基于上述无状态网络负载均衡器,本申请实施例提供了一种无状态网络负载均衡方法,该方法应用于无状态网络负载均衡器中,其中,请参阅图2,图2是本申请实施例公开的一种无状态网络负载均衡方法的流程示意图。如图2所示,本申请实施例的方法包括以下步骤:
101、所述第二处理单元获取客户端发送的数据包,并判断所述数据包的报文类型;
102、所述第二处理单元在所述数据包的报文类型表征所述数据包为新建连接的报文时,将所述新建连接的报文发送至所述第一处理单元,以使所述第一处理单元基于预设负载均衡算决策法确定所述新建连接的报文的处理服务器的IP地址,并使所述第一处理单元基于第一映射表将所述新建连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址,和使所述第一处理单元将修改后的所述新建连接的报文发送至所述第二处理单元,所述第二处理单元将修改后的所述新建连接的报文发送至所述处理服务器;
103、所述第二处理单元在所述数据包的报文表征所述数据包为已有连接的报文时,解码所述已有连接的报文,得到所述处理服务器的IP地址,并基于所述第一映射表将所述已有连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址,并将修改后的所述已有连接的报文发送至所述处理服务器。
本申请实施例的方法能够通过第一处理单元,执行负载均衡决策算法,进而能够在数据包为新建连接的报文时,确定新建连接的报文的处理服务器的IP地址,从而实现ULD,另一方面,通过第二处理单元能够将已有连接的报文分配给已有连接对应的服务器,从而实现PCC。
与现有技术相比,由于本申请的第一处理单元仅为新建连接分配服务器,而不会为已有连接查询相应的服务器,因此,能够保证第一处理单元的性能,从而使得第一处理单元能够支持任意复杂度的负载均衡决策算法,并适应大型网络应用系统的高动态变化。
需要说明的是,负载均衡决策算法可参考现有技术,本申请实施例对此不作赘述,例如,负载均衡决策算法可以是WRR(Weighted Round-Robin)算法、Power of Two算法等算法。
在本申请实施例中,作为一种可选的实施方式,本申请实施例的方法还包括以下步骤:
所述第二处理单元获取所述处理服务器针对所述新建连接的报文发送的响应报文;
所述第二处理单元提取所述响应报文的源IP地址;
所述第二处理单元基于所述响应报文的源IP地址,确定第一服务器标识符;
所述第二处理单元提取所述响应报文的五元组信息,并基于所述响应报文的五元组信息,生成第一连接标识符,并基于所述第一连接标识符和预设Hash算法计算得到第一哈希ID;
所述第二处理单元将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息;
所述第二处理单元将连接信息嵌入到所述响应报文,并基于所述第一映射表将所述响应报文携带的所述处理服务器的IP地址,替换为所述虚拟IP地址,以使所述客户端接收到携带所述连接信息的所述响应报文,并使所述客户端基于连接信息发送所述数据包。
在上述可选的实施方式中,第二处理单元在接收到处理服务器发送的响应报文时,能够基于响应报文中的五元组信息和预设Hash算法计算得到第一哈希ID,进而能够将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息,从而能够将连接信息嵌入到所述响应报文,另一方面,第二处理单元还能够基于第一映射表将响应报文携带的处理服务器的IP地址,替换为所述虚拟IP地址,以使客户端能够接收到携带所述连接信息的所述响应报文,进而客户端能够基于连接信息发送数据包。
与现有技术相比,本申请能够将第二处理单元所需的连接到服务器的映射关系以连接信息的形式存储在数据报文中,从而无需在无状态负载均衡器上集中存储大量的连接与服务器的映射关系数据。
在本申请实施例,五元组信息是指源IP地址、目的IP地址、源端口号、目的端口号、协议号。
在本申请实施例中,作为一种可选的实施方式,步骤:第二处理单元解码新建连接的报文,得到处理服务器的IP地址,包括以下子步骤:
第二处理单元提取新建连接的报文的五元组信息;
第二处理单元基于新建连接的报文的五元组信息生成第二连接标识符,并基于第二连接标识符和预设Hash算法计算得到第二哈希ID;
第二处理单元提取新建连接的报文携带的连接信息;
第二处理单元将连接信息与第二哈希ID进行异或运算,得到第二服务器标识符;
第二处理单元基于第二服务器标识符确定处理服务器的IP地址。
在上述可选的实施方式中,第二处理单元能够提取所述已有连接的报文的五元组信息,进而能够基于所述已有连接的报文的五元组信息生成第二连接标识符,和能够基于所述第二连接标识符和所述预设Hash算法计算得到第二哈希ID,进而通过提取所述已有连接的报文携带的所述连接信息,能够将将连接信息与所述第二哈希ID进行异或运算,得到第二服务器标识符,进而能够基于所述第二服务器标识符确定所述处理服务器的IP地址,即确定已有连接的报文的处理服务器。
与现有技术相比,本申请在将第二处理单元所需的连接到服务器的映射关系以连接信息的形式存储在数据报文的基础上,能够通过解码数据报文携带的连接信息,确定已有连接对应的处理服务器。
在本申请实施例中,作为一种可选的实施方式,步骤:第二处理单元基于第二服务器标识符确定处理服务器的IP地址,包括以下子步骤:
第二处理单元基于第二服务器标识符查询第二映射表,得到处理服务器的IP地址。
在上述可选的实施方式中,基于第二服务器标识符查询第二映射表,能够查询得到处理服务器的IP地址。
在上述可选的实施方式中,具体地第二映射表中的表项有服务器标识符和服务器IP地址,其中,服务器标识符与服务器IP地址之间为映射关系,进而可在查询第二映射表时,以第二服务器标识符为索引,得到处理服务器的IP地址。
在本申请第一方面中,作为一种可选的实施方式,第二处理单元基于响应报文的源IP地址,确定第一服务器标识符,包括:
第二处理单元基于响应报文的源IP地址,查询第二映射表,得到第一服务器标识符。
在上述可选的实施方式中,基于响应报文的源IP地址和第二映射表,能够得到第一服务器标识符。
在本申请第一方面中,作为一种可选的实施方式,第二处理单元判断新建连接的报文的连接类型,包括:
第二处理单元基于TCP-Sync报文判断新建连接的报文的连接类型。
在上述可选的实施方式,可基于TCP-Sync报文判断新建连接的报文的连接类型。
在上述可选的实施方式中,关于TCP-Sync报文请参阅现有技术,本申请实施例对此不作赘述。
在本申请第一方面中,作为一种可选的实施方式,所述第二处理单元判断所述数据包的报文类型,包括以下子步骤:
所述第二处理单元基于所述数据包中的Option字段判断所述数据包的报文类型。
在上述可选的实施方式中,可基于数据包中的Option字段判断新建连接的报文的连接类型。
实施例二
请参阅图3,图3是本申请时候示例提供的一种无状态网络负载均衡装置的结构示意图,如图3所示,该装置包括负载均衡决策模块201、新建连接判断模块202和PCC模块203,负载均衡决策模块应用于无状态网络负载均衡器中的第一处理单元,新建连接判断模块和PCC模块应用于无状态网络负载均衡器中的第二处理单元,第一处理单元为CPU,第二处理单元为支持P4编程语言的可编程交换机,或现场可编程门阵列,其中:
新建连接判断模块201,用于获取客户端发送的数据包,并判断新建连接的报文的连接类型,并在所述数据包的报文类型表征所述数据包为新建连接的报文时,将新建连接的报文发送至第一处理单元;
负载均衡决策模块202,用于基于预设负载均衡算决策法确定新建连接的报文的处理服务器的IP地址,并基于第一映射表将新建连接的报文携带虚拟IP地址替换为处理服务器的IP地址,和将修改后的新建连接的报文发送至PCC模块;
PCC模块203用于在新建连接的报文的连接类型为已有连接类型时,解码新建连接的报文,得到处理服务器的IP地址,并基于第一映射表将新建连接的报文的虚拟IP地址替换为处理服务器的IP地址;
PCC模块203还用于将新建连接的报文发送至处理服务器。
本申请第二方面的装置能够通过负载均衡决策模块,执行负载均衡决策算法,进而能够在数据包为新建连接的报文时,确定新建连接的报文的处理服务器的IP地址,从而实现ULD,另一方面,通过PCC模块能够将已有连接的报文分配给已有连接对应的服务器,从而实现PCC。
与现有技术相比,由于本申请实施例的负载均衡决策模块仅为新建连接分配服务器,而不会为已有连接查询相应的服务器,因此,能够保证第一处理单元的性能,从而使得第一处理单元能够支持任意复杂度的负载均衡决策算法,并适应大型网络应用系统的高动态变化。
在本申请实施例,作为一种可选的实施方式,所述PCC模块还用于取所述处理服务器针对所述新建连接的报文发送的响应报文;
所述PCC模块还用于提取所述响应报文的源IP地址;
所述PCC模块还用于基于所述响应报文的源IP地址,确定第一服务器标识符;
所述PCC模块还用于提取所述响应报文的五元组信息,并基于所述响应报文的五元组信息,生成第一连接标识符,并基于所述第一连接标识符和预设Hash算法计算得到第一哈希ID;
所述PCC模块还用于将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息;
所述PCC模块还用于将连接信息嵌入到所述响应报文,并基于所述第一映射表将所述响应报文携带的所述处理服务器的IP地址,替换为所述虚拟IP地址,以使所述客户端接收到携带所述连接信息的所述响应报文,并使所述客户端基于连接信息发送所述数据包。
在上述可选的实施方式中,PCC模块在接收到处理服务器发送的响应报文时,能够基于响应报文中的五元组信息和预设Hash算法计算得到第一哈希ID,进而能够将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息,从而能够将连接信息嵌入到所述响应报文,另一方面,PCC模块还能够基于第一映射表将响应报文携带的处理服务器的IP地址,替换为所述虚拟IP地址,以使客户端能够接收到携带所述连接信息的所述响应报文,进而客户端能够基于连接信息发送数据包。
与现有技术相比,本申请能够将PCC模块所需的连接到服务器的映射关系以连接信息的形式存储在数据报文中,从而无需在无状态负载均衡器上集中存储大量的连接与服务器的映射关系数据。
实施例三
本申请实施例提供一种存储介质,存储介质存储有计算机程序,计算机程序被处理器执行如前述实施方式任一项的无状态网络负载均衡方法。
本申请实施例的存储介质能够通过第一处理单元,执行负载均衡决策算法,进而确定新建连接的报文的处理服务器的IP地址,从而实现负载均衡,另一方面,通过第二处理单元能够在数据平面连接一致性。与现有技术相比,第一处理单元只需要在控制平面中运行负载均衡决策算法,其中,负载均衡决策算法只对首包进行处理,即仅为新连接类型的数据报文分配服务器,这样一来,能够避免负载均衡决策算法的复杂性对无状态网络负载均衡器性能的影响,进而使无状态网络负载均衡器能够加载任意负载均衡决策算法。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种无状态网络负载均衡方法,其特征在于,所述方法应用于无状态网络负载均衡器中,所述无状态网络负载均衡器包括第一处理单元和第二处理单元,所述第一处理单元为CPU,所述第二处理单元为支持P4编程语言的可编程交换机,或现场可编程门阵列,其中,所述方法包括:
所述第二处理单元获取客户端发送的数据包,并判断所述数据包的报文类型;
所述第二处理单元在所述数据包的报文类型表征所述数据包为新建连接的报文时,将所述新建连接的报文发送至所述第一处理单元,以使所述第一处理单元基于预设负载均衡算决策法确定所述新建连接的报文的处理服务器的IP地址,并使所述第一处理单元基于第一映射表将所述新建连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址,和使所述第一处理单元将修改后的所述新建连接的报文发送至所述第二处理单元,所述第二处理单元将修改后的所述新建连接的报文发送至所述处理服务器;
所述第二处理单元在所述数据包的报文表征所述数据包为已有连接的报文时,解码所述已有连接的报文,得到所述处理服务器的IP地址,并基于所述第一映射表将所述已有连接的报文携带的虚拟IP地址替换为所述处理服务器的I P地址,并将修改后的所述已有连接的报文发送至所述处理服务器。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第二处理单元获取所述处理服务器针对所述新建连接的报文发送的响应报文;
所述第二处理单元提取所述响应报文的源IP地址;
所述第二处理单元基于所述响应报文的源IP地址,确定第一服务器标识符;
所述第二处理单元提取所述响应报文的五元组信息,并基于所述响应报文的五元组信息,生成第一连接标识符,并基于所述第一连接标识符和预设Hash算法计算得到第一哈希ID;
所述第二处理单元将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息;
所述第二处理单元将连接信息嵌入到所述响应报文,并基于所述第一映射表将所述响应报文携带的所述处理服务器的IP地址,替换为所述虚拟IP地址,以使所述客户端接收到携带所述连接信息的所述响应报文,并使所述客户端基于连接信息发送所述数据包。
3.如权利要求2所述的方法,其特征在于,所述第二处理单元解码所述已有连接的报文,得到所述处理服务器的IP地址,包括:
所述第二处理单元提取所述已有连接的报文的五元组信息;
所述第二处理单元基于所述已有连接的报文的五元组信息生成第二连接标识符,并基于所述第二连接标识符和所述预设Hash算法计算得到第二哈希ID;
所述第二处理单元提取所述已有连接的报文携带的所述连接信息;
所述第二处理单元将所述连接信息与所述第二哈希ID进行异或运算,得到第二服务器标识符;
所述第二处理单元基于所述第二服务器标识符确定所述处理服务器的IP地址。
4.如权利要求3所述的方法,其特征在于,所述第二处理单元基于所述第二服务器标识符确定所述处理服务器的IP地址,包括:
所述第二处理单元基于所述第二服务器标识符查询第二映射表,得到所述处理服务器的IP地址。
5.如权利要求4所述的方法,其特征在于,所述第二处理单元基于所述响应报文的源IP地址,确定第一服务器标识符,包括:
所述第二处理单元基于所述响应报文的源IP地址,查询所述第二映射表,得到所述第一服务器标识符。
6.如权利要求1所述的方法,其特征在于,所述第二处理单元判断所述数据包的报文类型,包括:
所述第二处理单元基于TCP-Sync报文判断所述数据包的报文类型。
7.如权利要求1所述的方法,其特征在于,所述第二处理单元判断所述数据包的报文类型,包括:
所述第二处理单元基于所述数据包中的Option字段判断所述数据包的报文类型。
8.一种无状态网络负载均衡装置,其特征在于,所述装置包括负载均衡决策模块、新建连接判断模块和PCC模块,所述负载均衡决策模块应用于无状态网络负载均衡器中的第一处理单元,所述新建连接判断模块和所述PCC模块应用于所述无状态网络负载均衡器中的第二处理单元,所述第一处理单元为CPU,所述第二处理单元为支持P4编程语言的可编程交换机,或现场可编程门阵列,其中:
所述新建连接判断模块,用于获取客户端发送的数据包,并判断所述数据包的报文类型,并在所述数据包的报文类型表征所述数据包为新建连接的报文时,将所述新建连接的报文发送至所述第一处理单元;
所述负载均衡决策模块,用于基于预设负载均衡算决策法确定所述新建连接的报文的处理服务器的IP地址,并基于第一映射表将所述新建连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址,和将修改后的所述新建连接的报文发送至所述PCC模块;
所述PCC模块用于将修改后的所述新建连接的报文发送至所述处理服务器;
所述PCC模块还用于在所述数据包的报文表征所述数据包为已有连接的报文时,解码所述已有连接的报文,得到所述处理服务器的IP地址,并基于所述第一映射表将所述已有连接的报文携带的虚拟IP地址替换为所述处理服务器的IP地址;
所述PCC模块还用于将所述已有连接的报文发送至所述处理服务器。
9.如权利要求8所述的装置,其特征在于,所述PCC模块还用于取所述处理服务器针对所述新建连接的报文发送的响应报文;
所述PCC模块还用于提取所述响应报文的源IP地址;
所述PCC模块还用于基于所述响应报文的源IP地址,确定第一服务器标识符;
所述PCC模块还用于提取所述响应报文的五元组信息,并基于所述响应报文的五元组信息,生成第一连接标识符,并基于所述第一连接标识符和预设Hash算法计算得到第一哈希ID;
所述PCC模块还用于将所述第一服务器标识符与所述第一哈希ID做异或运算,得到连接信息;
所述PCC模块还用于将连接信息嵌入到所述响应报文,并基于所述第一映射表将所述响应报文携带的所述处理服务器的IP地址,替换为所述虚拟IP地址,以使所述客户端接收到携带所述连接信息的所述响应报文,并使所述客户端基于连接信息发送所述数据包。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行如权利要求1-7任一项所述的无状态网络负载均衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211584636.6A CN115883559A (zh) | 2022-12-09 | 2022-12-09 | 无状态网络负载均衡方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211584636.6A CN115883559A (zh) | 2022-12-09 | 2022-12-09 | 无状态网络负载均衡方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115883559A true CN115883559A (zh) | 2023-03-31 |
Family
ID=85766921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211584636.6A Pending CN115883559A (zh) | 2022-12-09 | 2022-12-09 | 无状态网络负载均衡方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115883559A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116820787A (zh) * | 2023-08-31 | 2023-09-29 | 湖北芯擎科技有限公司 | 负载均衡方法、装置、电子设备及计算机可读存储介质 |
-
2022
- 2022-12-09 CN CN202211584636.6A patent/CN115883559A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116820787A (zh) * | 2023-08-31 | 2023-09-29 | 湖北芯擎科技有限公司 | 负载均衡方法、装置、电子设备及计算机可读存储介质 |
CN116820787B (zh) * | 2023-08-31 | 2023-12-15 | 湖北芯擎科技有限公司 | 负载均衡方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10367852B2 (en) | Multiplexed demand signaled distributed messaging | |
US9742651B2 (en) | Client-side fault tolerance in a publish-subscribe system | |
EP3281360B1 (en) | Virtualized network function monitoring | |
KR20210127761A (ko) | 멀티 클러스터 인그레스 | |
Tran et al. | Eqs: An elastic and scalable message queue for the cloud | |
US20140164477A1 (en) | System and method for providing horizontal scaling of stateful applications | |
US9501307B2 (en) | Systems and methods for providing availability to resources | |
US9235829B2 (en) | Hierarchical publish/subscribe system | |
EP2670114A1 (en) | System and Methods for Communicating in a Telecommunication Network via Independent Key Routing and Proxies | |
JP2016514311A (ja) | 単一テナント及び複数テナント環境を提供するデータベースシステム | |
WO2019237594A1 (zh) | 会话保持方法、装置、计算机设备及存储介质 | |
CN110071965B (zh) | 一种基于云平台的数据中心管理系统 | |
US20160173595A1 (en) | Hierarchical publish/subscribe system | |
US20130024527A1 (en) | Hierarchical publish/subscribe system | |
Sharvari et al. | A study on modern messaging systems-kafka, rabbitmq and nats streaming | |
CN111131443A (zh) | 一种任务推送方法和系统 | |
CN115883559A (zh) | 无状态网络负载均衡方法、装置和存储介质 | |
CN115834708A (zh) | 负载均衡方法、装置、设备及计算机可读存储介质 | |
EP2670112A1 (en) | System and Method for Communicating in a Telecommunication Network via Common Key Routing and Proxies | |
US10498617B1 (en) | System, method, and computer program for highly available and scalable application monitoring | |
KR20180058880A (ko) | 오픈스택 기반의 분산 클라우드 데이터센터 환경에서 메시지 큐 부하 분산 및 성능 최적화 방법 | |
US10445136B1 (en) | Randomized subrequest selection using request-specific nonce | |
US9338126B2 (en) | System and method for communicating in a telecommunication network via independent key routing and data locality tables | |
Moreno‐Vozmediano et al. | Elastic management of web server clusters on distributed virtual infrastructures | |
JP7384952B2 (ja) | ネットワークロードバランサー、リクエストメッセージの割り当て方法、プログラム製品及びシステム |
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 |