CN116781721A - 会话信息同步方法、装置、第一节点及存储介质 - Google Patents
会话信息同步方法、装置、第一节点及存储介质 Download PDFInfo
- Publication number
- CN116781721A CN116781721A CN202211440305.5A CN202211440305A CN116781721A CN 116781721 A CN116781721 A CN 116781721A CN 202211440305 A CN202211440305 A CN 202211440305A CN 116781721 A CN116781721 A CN 116781721A
- Authority
- CN
- China
- Prior art keywords
- node
- information
- traffic
- hash ring
- determining
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 239000000758 substrate Substances 0.000 claims 1
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种会话信息同步方法、装置、第一节点及存储介质。其中,方法包括:第一节点利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,所述第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同;利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;向确定的第二节点发送所述第一流量的会话信息。本申请提供的方案,第一节点通过与第一设备相同的分流模型进行模拟,能够确定自身故障后第一设备为流量分配的节点,从而实现对会话信息的精准同步,减少了会话同步流量。
Description
技术领域
本申请涉及云计算领域,尤其涉及一种会话信息同步方法、装置、第一节点及存储介质。
背景技术
随着应用系统规模的增长以及稳定性要求的提高,对服务器负载均衡(SLB,Server Load Balancer)的要求也越来越高,除了需要更高的性能,还需要更高的稳定性,比如在服务器故障时应用系统不能出现业务抖动。
目前,SLB高可靠方案通常是通过SLB集群来实现的,其中,SLB集群中包含多个服务器同时对外提供服务。通过SLB集群,能够将业务流量均匀分散到SLB集群内不同的服务器上,从而保障业务流量的均衡。这个过程中,为了保障业务的连续性,相关技术中,每个服务器会将自身的会话信息同步至SLB集群中的其他所有服务器,以避免服务器故障时出现业务抖动。然而,在会话信息同步的过程中,会产生巨大的会话同步流量。
发明内容
为解决相关技术问题,本申请实施例提供一种会话信息同步方法、装置、第一节点及存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种会话信息同步方法,应用于第一节点,包括:
利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,所述第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;
利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;
向确定的第二节点发送所述第一流量的会话信息。
上述方案中,所述生成的分流模型包含第一哈希环,所述第一哈希环与所述至少一个第二节点关联;所述第一设备使用的分流模型包含第二哈希环,所述第二哈希环与所述至少一个第二节点以及所述第一节点关联。
上述方案中,所述利用第一信息,生成分流模型,包括:
利用所述第一信息,确定所述至少一个第二节点中每个第二节点的哈希值;
基于确定的每个第二节点的哈希值,得到所述第一哈希环。
上述方案中,所述利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点,包括:
确定所述第一节点的哈希值;
利用所述第一节点的哈希值,确定所述第一节点在所述第一哈希环上的位置;
利用所述第一节点在所述第一哈希环上的位置和所述第一哈希环上每个第二节点的位置,从所述至少一个第二节点中确定在自身故障时为所述第一流量提供服务的第二节点。
上述方案中,所述方法还包括:
利用所述第一哈希环和所述确定的第二节点,确定在自身故障和所述确定的第二节点故障时为所述第一流量提供服务的候选第二节点;
向所述候选第二节点发送所述第一流量的会话信息。
上述方案中,所述利用所述第一哈希环和所述确定的第二节点,确定在自身故障和所述确定的第二节点故障时为所述第一流量提供服务的候选第二节点,包括:
确定所述确定的第二节点在所述第一哈希环上的位置;
利用所述确定的第二节点在所述第一哈希环上的位置和所述第一哈希环上除所述确定的第二节点之外的其他第二节点的位置,确定所述候选第二节点。
上述方案中,所述方法还包括:
接收所述第一设备发送的第二信息,所述第二信息包含所述第一流量的相关信息;
利用所述第二信息,生成所述第一流量的会话信息。
本申请实施例还提供一种会话信息同步装置,包括:
第一处理单元,用于利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;
第二处理单元,用于利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;
发送单元,用于向确定的第二节点发送所述第一流量的会话信息。
本申请实施例还提供一种第一节点,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器。
其中,所述处理器用于运行所述计算机程序时,执行上述第一节点侧任一方法的步骤。
本申请实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一节点侧任一方法的步骤。
本申请实施例提供的会话信息同步方法、装置、第一节点及存储介质,第一节点利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,所述第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;向确定的第二节点发送所述第一流量的会话信息。本申请实施例提供的方案,在进行会话同步之前,每个节点通过与交换机(即第一设备)相同的分流算法(即分流模型)进行模拟,以确定自身故障后交换机为流量分配的节点,从而进行精准地会话同步。如此,一个节点不需要向集群中其他所有的节点同步会话信息,而是向可能成为分配节点的节点(即确定的第二节点)同步会话信息,从而减少了会话同步流量。
附图说明
图1为相关技术中服务器故障时的分流方法流程示意图;
图2为相关技术中会话信息同步的方法流程示意图;
图3为本申请实施例会话信息同步的方法流程示意图;
图4为本申请实施例第二哈希环的结构示意图;
图5为本申请实施例第一哈希环的结构示意图;
图6为本申请实施例确定第二节点的结构示意图;
图7为本申请应用示例精准会话同步的方法流程示意图;
图8为本申请实施例会话信息同步装置结构示意图;
图9为本申请实施例第一节点结构示意图。
具体实施方式
下面结合附图及实施例对本申请再作进一步详细的描述。
SLB高可靠方案中,SLB集群中每个服务器会和交换机(英文可以表达为Switch)建立边界网关协议(BGP,Border Gateway Protocol)邻居,且每个服务器具有相同的SLB虚拟网际互联协议(IP,Internet Protocol)地址(VIP,Virtual IP Address);其中,VIP与服务器的真实IP(英文可以表达为Real Server IP)地址不同,是由服务器根据网络(英文可以表达为Internet)中客户端的数量得到的地址范围,并按照预设方式为客户端分配的虚拟IP地址,便于实现客户端与网络间的通信。通过交换机的等价多路径路由(ECMP,EqualCost Multi-Path)和一致性哈希(英文可以表达为HASH)算法,能够将流量均匀分散到集群内的不同服务器上,从而保障了流量的均衡。
这里,如图1所示,目前的容灾方案中,如果SLB集群中一个服务器故障(即SLB1),则交换机会通过ECMP和一致性哈希算法将故障的服务器上的流量均匀分配到SLB集群中其他服务器上(即SLB2、SLB3和SLB4),从而保障整个SLB集群的流量抖动最小。为了保障业务的连续性,SLB1会在故障之前,将自身的会话信息以组播的方式同步到SLB集群内其他所有服务器上。
相关技术中,如图2所示,SLB集群进行会话信息同步的过程,包括以下步骤:
步骤1:SLB集群中一个服务器(比如SLB1)根据请求的五元组信息和SLB规则,进行会话新建并得到会话信息;
其中,所述五元组信息包含源IP地址(英文可以表达为SIP)、源端口(英文可以表达为SPORT)、目的IP地址(英文可以表达为DIP)、目的端口(英文可以表达为DPORT)和传输层协议(英文可以表达为Protocol)(比如超文本传输协议(HTTP,Hyper Text TransferProtocol)或超文本传输安全协议(HTTPS,Hypertext Transfer Protocol Secure))等信息。
实际应用时,交换机可以根据所述请求的传输控制协议(TCP,TransmissionControl Protocol)、用户数据报协议(UDP,User Datagram Protocol)或网络控制报文协议(ICMP,Internet Control Message Protocol)等报文信息,确定所述请求的五元组信息,并发送至SLB1。
另外,由于每个服务器对应至少一个业务服务器,所以,SLB1会利用预设的SLB规则中SLB的VIP和业务服务器的关联关系,以将请求的流量发送至对应的业务服务器,如此,实现了会话新建。
步骤2:SLB1根据触发条件,将满足发送条件的会话信息发送至发送队列中,以通过指定线程将发送队列中的会话信息封装成组播报文并发送至交换机(Session Send);
其中,所述触发条件包含检测到会话新建的操作或者会话的状态发生变化,所述发送条件包含会话信息的大小满足预设阈值。
步骤3:交换机接收到组播报文(Session Receive)后,利用组播报文中的组播地址确定对应的组播组;通过硬件交换芯片对组播报文进行复制,并将复制后的组播报文发送至组播组对应的其他服务器(SLB2、SLB3和SLB4);
步骤4:组播组对应的其他服务器接收到组播报文后,基于组播报文进行会话信息,从而将组播报文对应的会话信息同步至服务器的会话表中,实现了会话的同步操作。
综上所述,当前的容灾方案中,SLB集群中的每个服务器都会将自身的会话信息同步至SLB集群中其他所有的服务器,形成一种全连接(英文可以表达为FullMesh)的模式;也就是说,每台服务器都有整个SLB集群的会话信息。当一台服务器发生故障时,原本分配至发生故障的服务器的流量会被重新分配至SLB集群中的其他服务器上,同时,由于预先同步了会话信息,所以通信连接不会出现中断,业务也不会出现抖动,从而保障了业务的连续性。
然而,对于每个服务器来说,服务器无法准确预知流量会被重新分配至SLB集群中的哪个服务器上,因此,服务器只能使用全连接的会话同步模式进行会话同步。随着SLB集群中服务器数量的增加,采用全连接的会话同步模式会产生巨大的会话同步流量。
基于此,在本申请的各种实施例中,在会话信息同步之前,服务器(即第一节点)通过使用与交换机相同的分流算法,能够精准确定该服务器故障后交换机为流量重新分配的节点,以实现会话信息的精确同步,如此,减少了会话同步流量。
本申请实施例提供了一种会话信息同步方法,应用于第一节点,如图3所示,该方法包括:
步骤301:利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,所述第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;
步骤302:利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;
步骤303:向确定的第二节点发送所述第一流量的会话信息。
其中,实际应用时,所述第一节点和所述第二节点可以称为服务器、SLB、SLB节点等,能够为流量提供服务,本申请实施例对所述第一节点和所述第二节点的名称不作限定,只要实现其功能即可。
另外,所述第一设备可以称为上联交换机、白盒交换机等,具有能够自定义模型或算法的能力,本申请实施例对所述第一设备的名称不作限定,只要实现其功能即可。
这里,所述第一节点和所述至少一个第二节点可以理解为SLB集群中的节点,每个节点具有为流量提供服务的能力。所述第一节点和每个第二节点可以预先与所述第一设备建立关联关系,这样,所述第一设备能够使用分流模型,从SLB集群中选择为流量提供服务的节点。
示例性地,SLB集群中的每个节点通过动态路由协议(比如BGP)与所述第一设备建立关联关系,当所述第一设备接收到客户端通过VIP发送的请求后,基于分流模型将请求对应的流量分配至SLB集群中的节点。
实际应用时,步骤301中,为了使得所述第一节点能够准确预测自身故障时为所述第一流量重新分配的第二节点,所述第一节点生成的分流模型需要与所述第一设备使用的分流模型相同。
在一实施例中,所述生成的分流模型包含第一哈希环,所述第一哈希环与所述至少一个第二节点关联;所述第一设备使用的分流模型包含第二哈希环,所述第二哈希环与所述至少一个第二节点以及所述第一节点关联。
这里,对于所述第一设备使用的分流模型,由于所述第一设备与所述第一节点和每个第二节点建立了关联关系,因此所述第一设备能够确定所述第一节点和每个第二节点的地址信息,进而生成所述第二哈希环。
示例性地,如图4所示,以4个服务器(具体包含SLB1、SLB2、SLB3和SLB4)为例,所述第一设备通过一致性哈希算法确定每个服务器的IP地址对应的哈希值,进而形成所述第二哈希环。本申请实施例对生成所述第二哈希环的方式不作限定。
实际应用时,由于所述第一节点和每个第二节点之间是相互独立的,所述第一节点无法直接从所述至少一个第二节点获取所述第一信息,所以,所述第一节点可以通过人为配置的方式获取所述第一信息,进而形成所述第一哈希环。
具体地,在一实施例中,所述利用第一信息,生成分流模型,包括:
利用所述第一信息,确定所述至少一个第二节点中每个第二节点的哈希值;
基于确定的每个第二节点的哈希值,得到所述第一哈希环。
这里,所述第一节点可以基于所述第一信息,确定所述至少一个第二节点中每个第二节点的哈希值,进而形成所述第一哈希环;其中,所述第一信息可以包含所述至少一个第二节点的地址信息。
示例性地,如图5所示,以4个服务器(具体包含SLB1、SLB2、SLB3和SLB4)为例,每个服务器能够形成自身特有的第二哈希环。针对SLB1,SLB1根据人为配置的第一信息确定SLB2、SLB3和SLB4的IP地址,并通过一致性哈希算法确定SLB2、SLB3和SLB4的哈希值,进而形成SLB1对应的第二哈希环,比如按照哈希值的大小顺序将SLB2、SLB3和SLB4插入到平衡二叉树中,以形成SLB1对应的第二哈希环。针对SLB2,SLB2根据人为配置的第一信息确定SLB1、SLB3和SLB4的IP地址,并通过一致性哈希算法确定SLB1、SLB3和SLB4的哈希值,进而形成SLB2对应的第二哈希环,比如按照哈希值的大小顺序将SLB1、SLB3和SLB4插入到平衡二叉树中,以形成SLB2对应的第二哈希环。针对SLB3,SLB3根据人为配置的第一信息确定SLB1、SLB2和SLB4的IP地址,并利用通过一致性哈希算法确定SLB1、SLB2和SLB4的哈希值,进而形成SLB3对应的第二哈希环,比如按照哈希值的大小顺序将SLB1、SLB2和SLB4插入到平衡二叉树中,以形成SLB3对应的第二哈希环。针对SLB4,SLB4根据人为配置的第一信息确定SLB1、SLB2和SLB3的IP地址,并通过一致性哈希算法确定SLB1、SLB2和SLB3的哈希值,进而形成SLB4对应的第二哈希环,比如按照哈希值的大小顺序将SLB1、SLB2和SLB3插入到平衡二叉树中,以形成SLB4对应的第二哈希环。本申请实施例对形成所述第一哈希环的方式不作限定。
这里,实际应用时,形成所述第二哈希环后,所述第一设备可以通过所述第二哈希环为流量分配提供服务的节点。
示例性地,如图6所示,交换机(即第一设备)接收客户端发送的请求1后,交换机通过一致性哈希算法,能够确定请求1的五元组信息对应的哈希值,进而能够确定五元组信息在所述第二哈希环上的位置(即位于哪两个SLB之间),所述五元组信息包含源IP地址、源端口、目的IP地址、目的端口和传输层协议等信息;根据五元组信息在所述第二哈希环上的位置,交换机能够按照顺时针方向将距离最近的SLB2作为为请求1的流量分配SLB。
实际应用时,在所述第一设备通过所述第二哈希环为所述第一流量分配提供服务的第一节点的情况下,所述第一设备可以通过所述第一节点的地址信息将所述第一流量发送至所述第一节点;其中,所述第一设备可以基于ECMP与所述第一节点通信,本申请实施例对所述第一设备和所述第一节点的通信方式不作限定。针对所述第一流量,所述第一设备能够生成对应的会话信息,以便后续进行会话同步。
具体地,在一实施例中,该方法还可以包括:
接收所述第一设备发送的第二信息,所述第二信息包含所述第一流量的相关信息;
利用所述第二信息,生成所述第一流量的会话信息。
其中,实际应用时,所述第一流量的相关信息可以包含所述第一流量的五元组信息。
实际应用时,针对第一流量,所述第一节点可以根据第一规则,确定第一流量对应的业务服务器,从而生成所述第一流量的会话信息;其中,所述第一规则可以为预先配置的规则,能够表征节点和业务服务器的关联关系,每个节点与至少两个业务服务器关联。也就是说,所述第一流量的会话信息可以反映所述第一流量的传输路径,指示后续将所述第一流量发送至哪个业务服务器。
示例性地,用户通过VIP发送请求后,所述第一设备会为请求对应的所述第一流量分配提供提取的所述第一节点。针对所述第一流量,所述第一节点会生成正向会话信息,所述正向会话信息由用户IP(英文可以表达为Client IP)、VIP、用户端口(英文可以表达为Client Port)、虚拟端口(英文可以表达为Virtual Port)和传输层协议组成;同时,所述第一节点还会根据所述第一规则确定VIP对应的业务服务器(英文可以表达为Real Server),并生成反向会话信息,所述反向会话信息由所述第一节点的地址信息、业务服务器的IP地址、所述第一节点的端口和传输层协议组成;基于所述正向会话信息和反向会话信息,所述第一节点能够生成所述第一流量的会话信息。本申请实施例对生成所述第一流量的会话信息的方式不作限定。
实际应用时,生成所述第一流量的会话信息后,所述第一节点还可以通过所述第一哈希环,确定在自身故障时为所述第一流量提供服务的第二节点,以实现精准地会话同步。
基于此,在一实施例中,所述利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点,包括:
确定所述第一节点的哈希值;
利用所述第一节点的哈希值,确定所述第一节点在所述第一哈希环上的位置;
利用所述第一节点在所述第一哈希环上的位置和所述第一哈希环上每个第二节点的位置,从所述至少一个第二节点中确定在自身故障时为所述第一流量提供服务的第二节点。
实际应用时,针对所述第一节点,所述第一节点能够确定自身的地址信息;利用自身的地址信息,所述第一节点可以确定所述第一节点的哈希值,进而确定所述第一节点在所述第一哈希环上的位置。通过结合所述第一哈希环上每个第二节点的位置,所述第一节点能够预测自身故障时为所述第一流量提供服务的第二节点。
示例性地,如图6所示,以SLB2为例,针对所述第一流量的会话信息1,SLB2通过一致性哈希算法,利用自身的IP地址能够计算得到SLB2的哈希值;利用SLB2的哈希值,SLB2能够确定在第一哈希环上的位置;结合所述第一哈希环上SLB1、SLB3和SLB4的位置,SLB2按照顺时针方向能够确定自身故障时为所述第一流量提供服务的节点为SLB3。
示例性地,SLB2通过交换机得到请求1的五元组信息;通过一致性哈希算法,SLB2确定请求1的五元组信息对应的哈希值,并确定在第一哈希环上的位置;结合所述第一哈希环上SLB1、SLB3和SLB4的位置,SLB2按照顺时针方向能够确定自身故障时为所述第一流量提供服务的节点为SLB3。
实际应用时,步骤303中,所述第一节点可以通过所述第一设备将所述第一流量的会话信息发送至所述确定的第二节点,而不是通过组播的方式发送至SLB集群中的所有第二节点,如此,实现了会话信息的精准同步。
示例性地,所述第一节点通过所述第一设备,基于TCP与所述至少一个第二节点中每个第二节点建立连接,且所述至少一个第二节点之间也通过所述第一设备,基于TCP建立连接,从而形成全连接的模式。基于与所述确定的第二节点间建立的连接,所述第一节点通过所述第一设备,将所述第一流量的会话信息发送至所述确定的第二节点。本申请实施例对所述第一设备和所述第二设备的通信方式不作限定。
实际应用时,为了在SLB集群中多个节点同时发生故障时保障业务流量的稳定性,所述第一节点还可以进行多个候选节点的精准同步。
基于此,在一实施例中,该方法还可以包括:
利用所述第一哈希环和所述确定的第二节点,确定在自身故障和所述确定的第二节点故障时为所述第一流量提供服务的候选第二节点;
向所述候选第二节点发送所述第一流量的会话信息。
其中,实际应用时,所述确定的第二节点还可以称为第一副本节点,本申请实施例对此不作限定,只要实现其功能即可。另外,所述候选第二节点还可以称为第二副本节点,本申请实施例对此不作限定,只要实现其功能即可。
这里,为了避免多个节点同时发生故障,所述第一节点可以利用所述第一哈希环和所述确定的第二节点,模拟多个节点同时故障时为所述第一流量提供服务的候选第二节点。
具体地,在一实施例中,所述利用所述第一哈希环和所述确定的第二节点,确定在自身故障和所述确定的第二节点故障时为所述第一流量提供服务的候选第二节点,包括:
确定所述确定的第二节点在所述第一哈希环上的位置;
利用所述确定的第二节点在所述第一哈希环上的位置和所述第一哈希环上除所述确定的第二节点之外的其他第二节点的位置,确定所述候选第二节点。
示例性地,如图6所示,所述第一节点确定所述第一副本节点(即所述确定的第二节点)为SLB3后,可以模拟所述SLB2和SLB3同时故障时为所述第一流量提供服务的第二副本节点。根据SLB3在所述第一哈希环上的位置,结合SLB4和SLB1在所述第一哈希环上的位置,所述第一节点按照顺时针方向能够确定SLB2和SLB3同时故障时为所述第一流量提供服务的第二副本节点(即候选第二节点)为SLB4。
实际应用时,确定所述候选第二节点后,所述第一节点还可以通过所述第一设备将所述第一流量的会话信息同步至所述候选第二节点,以保障在多节点故障时业务流量的稳定性。
这里,所述第一节点可以根据需要确定多个候选第二节点,以避免多个节点同时发送故障而导致业务流量抖动的情况;也就是说,所述第一节点可以采用上述方案模拟M个节点同时发生故障的场景,并确定M个节点同时发生故障时为所述第一流量提供服务的节点,M的取值为大于或等于2的整数,M的取值可以根据需要设置(比如2),本申请实施例对M的取值不作限定。
本申请实施例提供的会话信息同步方法,第一节点利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,所述第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;向确定的第二节点发送所述第一流量的会话信息。本申请实施例提供的方案,在进行会话同步之前,每个节点通过与交换机(即第一设备)相同的分流算法(即分流模型)进行模拟,以确定自身故障后交换机为流量分配的节点,从而进行精准地会话同步。如此,一个节点不需要向集群中其他所有的节点同步会话信息,而是向可能成为分配节点的节点(即确定的第二节点)同步会话信息,从而减少了会话同步流量。
下面结合应用示例对本申请再作进一步详细的描述。
本应用示例中,提出了一种负载均衡器的会话多节点精准同步方法,该方法应用于白盒交换机和软件负载均衡器联合使用的一种场景。白盒交换机和软件负载均衡器使用同一种分流算法,所述软件负载均衡器包含N个节点,在会话同步前,软件负载均衡器的节点(即上述的第一节点)能够通过分流算法模拟该节点故障后,白盒交换机会将节点上的流量重新分配到哪个节点(即上述确定的第二节点),以实现会话信息的定向同步。
具体地,软件负载均衡器的会话多节点精准同步方案,包括以下步骤:
步骤1:白盒交换机根据软件负载均衡器的N个SLB(也可以称为节点)的IP地址,形成一致性哈希环(即上述的第二哈希环);
其中,N的取值为大于或等于2的整数。
实际应用时,步骤1之前,每个SLB会和白盒交换机建立BGP邻居,且每个SLB都具有相同的VIP。建立BGP邻居后,白盒交换机能够确定VIP对应的SLB。这样,客户端通过VIP访问白盒交换机时,白盒交换机能够将访问请求对应的流量发送至对应的SLB。
另外,SLB和白盒交换机建立BGP邻居的过程中,每个SLB还会向白盒交换机发送IP地址,使得白盒交换机能够根据N个SLB的IP地址,形成一致性哈希环。具体地,以四个SLB为例,白盒交换机通过一致性哈希算法,得到SLB1、SLB2、SLB3和SLB4的哈希值,从而形成了白盒交换机对应的一致性哈希环。
步骤2:每个SLB根据用户的配置,形成每个SLB特有的哈希环(即上述的第一哈希环);
这里,用户的配置可以理解为人为配置的信息,以通知每个SLB软件负载均衡器中其他SLB的IP地址,进而形成对应的哈希环。这是因为:SLB之间是相互独立的,每个SLB无法直接与其他SLB通信以获取对应的IP地址,所以需要通过人为配置的方式,使得SLB获取其他SLB的IP地址。
接着,针对每个SLB,SLB会根据用户的配置形成该SLB发生故障时所对应的哈希环;其中,形成哈希环的过程中,SLB会将自身去除,即所形成的哈希环上不包含自身。
步骤3:当白盒交换机通过算法将Session1这个请求的流量发送到SLB2时,SLB2会进行新建会话表,并通过查找SLB2对应的一致性哈希环,确定当SLB2故障时,Session1的流量将会被分配到SLB3;
其中,所述Session1至少包含五元组信息。
实际应用时,白盒交换机通过一致性哈希算法,利用Session1的五元组信息,得到Session1的哈希值。假设根据Session1的哈希值和白盒交换机对应的哈希环,白盒交换机能够确定将Session1的流量发送至SLB2,那么,白盒交换机会将Session1的流量发送至SLB2。
相应地,SLB2接收到白盒交换机发送的Session1的流量时,SLB2会新建会话信息,并利用新建的会话信息更新会话表。然后,SLB2利用对应的一致性哈希环,确定SLB2故障时Session1的流量会被重新分配至SLB3。
步骤4:SLB2将Session1的会话信息同步至SLB3;
这里,SLB2的会话同步模块仅将Session1的会话信息同步至SLB3。
步骤5:为了保证在多SLB故障时业务系统流量的稳定,白盒交换机还会模拟SLB2和SLB3同时故障时同步会话信息的第二副本节点;
实际应用时,根据步骤3,SLB2能够确定第一副本节点为SLB3,此时,SLB2还会利用对应的一致性哈希环,模拟SLB2和SLB3同时故障时同步会话信息的第二副本节点,即SLB4。在这种情况下,SLB2会将Session1的会话信息同时同步至SLB3和SLB4。
类似地,SLB2还可以模拟SLB2、SLB3和SLB4同时故障时同步会话信息的第三副本节点。
示例性地,如图7所示,软件负载均衡器的会话多节点精准同步方案中,SLB1通过白盒交换机,能够将Session1的会话信息定向发送至SLB2和SLB3;另外,SLB3通过白盒交换机,能够将Session2的会话信息定向发送至SLB2和SLB4。
本应用实例中,白盒交换机和软件负载均衡器通过ECMP和一致性哈希算法进行联动,即白盒交换机和软件负载均衡器的N个SLB都具有相同的分流模型,以保证分流模型的实现、参数、输出完全一致。白盒交换机通过上述分流模型进行分流,SLB通过上述分流模型进行预判,以精准确定自身故障后被重新分流后的SLB。根据确定的SLB,SLB会将流量的会话信息同步至确定的SLB,即特定的SLB。如此,减少了不必要的会话同步流量,同时,还能够减少控制层面的带宽使用、降低拥塞,以及提供会话同步的实时性、准确性和成功率。
另外,在采用组播的方式进行会话同步的场景拿下,由于软件负载均衡器的会话新建能力就是每个SLB的会话新建能力,随着软件负载均衡器的SLB数量的增多,软件负载均衡器的新建和并发的能力无法得到提升。本应用实例中,采用精准同步的方式,能够提高软件负载均衡器的会话新建能力和会话并发能力。
为了实现本申请实施例的方案,本申请实施例还提供一种会话信息同步装置,设置在第一节点上,如图8所示,该装置包括:
第一处理单元801,用于利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,所述第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;
第二处理单元802,用于利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;
发送单元803,用于向确定的第二节点发送所述第一流量的会话信息。
在一实施例中,所述生成的分流模型包含第一哈希环,所述第一哈希环与所述至少一个第二节点关联;所述第一设备使用的分流模型包含第二哈希环,所述第二哈希环与所述至少一个第二节点以及所述第一节点关联。
在一实施例中,所述第二处理单元802,用于:
利用所述第一信息,确定所述至少一个第二节点中每个第二节点的哈希值;
利用确定的每个第二节点的哈希值,得到所述第一哈希环。
其中,在一实施例中,所述第二处理单元802,用于:
确定所述第一节点的哈希值;
利用所述第一节点的哈希值,确定所述第一节点在所述第一哈希环上的位置;
利用所述第一节点在所述第一哈希环上的位置和所述第一哈希环上每个第二节点的位置,从所述至少一个第二节点中确定在自身故障时为所述第一流量提供服务的第二节点。
在一实施例中,所述第二处理单元802,还用于:
利用所述第一哈希环和所述确定的第二节点,确定在自身故障和所述确定的第二节点故障时为所述第一流量提供服务的候选第二节点;
向所述候选第二节点发送所述第一流量的会话信息。
在一实施例中,所述第二处理单元802,用于:
确定所述确定的第二节点在所述第一哈希环上的位置;
利用所述确定的第二节点在所述第一哈希环上的位置和所述第一哈希环上除所述确定的第二节点之外的其他第二节点的位置,确定所述候选第二节点。
在一实施例中,所述第一处理单元801,还用于:
接收所述第一设备发送的第二信息,所述第二信息包含所述第一流量的相关信息;
利用所述第二信息,生成所述第一流量的会话信息。
实际应用时,所述第一处理单元801可由会话信息同步装置中的处理器结合通信接口实现;所述第二处理单元802可由会话信息同步装置中的处理器实现;所述发送单元803可由会话信息同步装置中的通信接口实现。
需要说明的是:上述实施例提供的会话信息同步装置在进行会话信息同步时,仅以上述各程序单元的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序单元完成,即将装置的内部结构划分成不同的程序单元,以完成以上描述的全部或者部分处理。另外,上述实施例提供的会话信息同步装置与会话信息同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种第一节点,如图9所示,该第一节点900包括:
通信接口901,能够与其他设备进行交互;
处理器902,与所述通信接口901连接,以实现与其他设备进行交互,用于运行计算机程序时,执行上述第一节点侧一个或多个技术方案提供的方法;
存储器903,所述计算机程序存储在存储器903上。
具体地,所述处理器902,用于:
利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,所述第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;
利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;
通过所述通信接口901向确定的第二节点发送所述第一流量的会话信息。
在一实施例中,所述生成的分流模型包含第一哈希环,所述第一哈希环与所述至少一个第二节点关联;所述第一设备使用的分流模型包含第二哈希环,所述第二哈希环与所述至少一个第二节点以及所述第一节点关联。
在一实施例中,所述处理器902,用于:
利用所述第一信息,确定所述至少一个第二节点中每个第二节点的哈希值;
利用确定的每个第二节点的哈希值,得到所述第一哈希环。
其中,在一实施例中,所述处理器902,用于:
确定所述第一节点的哈希值;
利用所述第一节点的哈希值,确定所述第一节点在所述第一哈希环上的位置;
利用所述第一节点在所述第一哈希环上的位置和所述第一哈希环上每个第二节点的位置,从所述至少一个第二节点中确定在自身故障时为所述第一流量提供服务的第二节点。
在一实施例中,所述处理器902,还用于:
利用所述第一哈希环和所述确定的第二节点,确定在自身故障和所述确定的第二节点故障时为所述第一流量提供服务的候选第二节点;
通过所述通信接口901向所述候选第二节点发送所述第一流量的会话信息。
在一实施例中,所述处理器902,用于:
确定所述确定的第二节点在所述第一哈希环上的位置;
利用所述确定的第二节点在所述第一哈希环上的位置和所述第一哈希环上除所述确定的第二节点之外的其他第二节点的位置,确定所述候选第二节点。
在一实施例中,所述处理器902,还用于:
通过所述通信接口901接收所述第一设备发送的第二信息,所述第二信息包含所述第一流量的相关信息;
利用所述第二信息,生成所述第一流量的会话信息。
需要说明的是:处理器902和通信接口901的具体处理过程可参照上述方法理解。
当然,实际应用时,第一节点中的各个组件通过总线系统904耦合在一起。可理解,总线系统904用于实现这些组件之间的连接通信。总线系统904除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统904。
本申请实施例中的存储器903用于存储各种类型的数据以支持第一节点900的操作。这些数据的示例包括:用于在第一节点900上操作的任何计算机程序。
上述本申请实施例揭示的方法可以应用于所述处理器902,或者由所述处理器902实现。所述处理器902可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述处理器902中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述处理器902可以是通用处理器、数字信号处理器(DSP,Digital SignalProcessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述处理器902可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器903,所述处理器902读取存储器903中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,第一节点900可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
这里,需要说明的是:所述第一节点900的具体处理过程已在上文详述,这里不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器803,上述计算机程序可由第一节点900的处理器902执行,以完成前述会话信息同步方法的所述步骤。计算机可读存储介质可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,ProgrammableRead-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically ErasableProgrammable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic randomaccess memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种会话信息同步方法,其特征在于,应用于第一节点,包括:
利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,所述第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;
利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;
向确定的第二节点发送所述第一流量的会话信息。
2.根据权利要求1所述的方法,其特征在于,
所述生成的分流模型包含第一哈希环,所述第一哈希环与所述至少一个第二节点关联;所述第一设备使用的分流模型包含第二哈希环,所述第二哈希环与所述至少一个第二节点以及所述第一节点关联。
3.根据权利要求2所述的方法,其特征在于,所述利用第一信息,生成分流模型,包括:
利用所述第一信息,确定所述至少一个第二节点中每个第二节点的哈希值;
基于确定的每个第二节点的哈希值,得到所述第一哈希环。
4.根据权利要求2所述的方法,其特征在于,所述利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点,包括:
确定所述第一节点的哈希值;
利用所述第一节点的哈希值,确定所述第一节点在所述第一哈希环上的位置;
利用所述第一节点在所述第一哈希环上的位置和所述第一哈希环上每个第二节点的位置,从所述至少一个第二节点中确定在自身故障时为所述第一流量提供服务的第二节点。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
利用所述第一哈希环和所述确定的第二节点,确定在自身故障和所述确定的第二节点故障时为所述第一流量提供服务的候选第二节点;
向所述候选第二节点发送所述第一流量的会话信息。
6.根据权利要求5所述的方法,其特征在于,所述利用所述第一哈希环和所述确定的第二节点,确定在自身故障和所述确定的第二节点故障时为所述第一流量提供服务的候选第二节点,包括:
确定所述确定的第二节点在所述第一哈希环上的位置;
利用所述确定的第二节点在所述第一哈希环上的位置和所述第一哈希环上除所述确定的第二节点之外的其他第二节点的位置,确定所述候选第二节点。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
接收所述第一设备发送的第二信息,所述第二信息包含所述第一流量的相关信息;
利用所述第二信息,生成所述第一流量的会话信息。
8.一种会话信息同步装置,其特征在于,包括:
第一处理单元,用于利用第一信息,生成分流模型,所述第一信息包含至少一个第二节点的信息,第一节点与所述至少一个第二节点均与第一设备关联,生成的分流模型与所述第一设备使用的分流模型相同,所述节点用于为流量提供服务,且所述第一节点用于为第一流量提供服务,所述分流模型用于为流量分配提供服务的节点;
第二处理单元,用于利用所述生成的分流模型,确定在自身故障时为所述第一流量提供服务的第二节点;
发送单元,用于向确定的第二节点发送所述第一流量的会话信息。
9.一种第一节点,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211440305.5A CN116781721A (zh) | 2022-11-17 | 2022-11-17 | 会话信息同步方法、装置、第一节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211440305.5A CN116781721A (zh) | 2022-11-17 | 2022-11-17 | 会话信息同步方法、装置、第一节点及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116781721A true CN116781721A (zh) | 2023-09-19 |
Family
ID=87986632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211440305.5A Pending CN116781721A (zh) | 2022-11-17 | 2022-11-17 | 会话信息同步方法、装置、第一节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116781721A (zh) |
-
2022
- 2022-11-17 CN CN202211440305.5A patent/CN116781721A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10320683B2 (en) | Reliable load-balancer using segment routing and real-time application monitoring | |
CN113826363B (zh) | 全局网络接入点中冗余控制器之间的一致路由公告 | |
Desmouceaux et al. | 6lb: Scalable and application-aware load balancing with segment routing | |
US11570239B2 (en) | Distributed resilient load-balancing for multipath transport protocols | |
JP2016518081A (ja) | 分散型ロードバランサ | |
US12003424B2 (en) | Load balancing communication sessions in a networked computing environment | |
CN107682406B (zh) | 一种业务处理的方法、装置以及系统 | |
Chen et al. | Routing-as-a-service (RaaS): A framework for tenant-directed route control in data center | |
CN110636036A (zh) | 一种基于SDN的OpenStack云主机网络访问控制的方法 | |
CN116633934A (zh) | 负载均衡方法、装置、节点及存储介质 | |
CN115242700B (zh) | 一种通信传输方法、装置及系统 | |
US10033593B2 (en) | Using timestamps to analyze network topologies | |
CN112217735A (zh) | 信息同步方法与负载均衡系统 | |
Risdianto et al. | Enhanced Onos Sdn controllers deployment for federated multi-domain Sdn-cloud with Sd-routing-exchange | |
CN116781721A (zh) | 会话信息同步方法、装置、第一节点及存储介质 | |
CN116233481A (zh) | 一种媒体流传输方法、媒体服务器以及通信系统 | |
CN117040933B (zh) | 跨区域的网络引流处理方法、安全处理方法、装置及设备 | |
Takahashi et al. | A portable load balancer with ECMP redundancy for container clusters | |
CN114826887B (zh) | 私网连接通信方法和系统 | |
CN114760242B (zh) | 虚拟路由器的迁移方法、装置、电子设备及存储介质 | |
US11863592B2 (en) | Active speaker tracking using a global naming scheme | |
Varis et al. | Dbridges: Flexible floodless frame forwarding | |
Yaguache et al. | Enabling edge computing using container orchestration and software defined wide area networks | |
Wohlbold | Load Balancing and Failover for Isolated, Multi-Tenant Layer 2 Virtual Private Networks | |
WO2023117059A1 (en) | Establishing a bidirectional connection between a client and a remote node |
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 |