CN112217735A - 信息同步方法与负载均衡*** - Google Patents
信息同步方法与负载均衡*** Download PDFInfo
- Publication number
- CN112217735A CN112217735A CN202010935366.3A CN202010935366A CN112217735A CN 112217735 A CN112217735 A CN 112217735A CN 202010935366 A CN202010935366 A CN 202010935366A CN 112217735 A CN112217735 A CN 112217735A
- Authority
- CN
- China
- Prior art keywords
- load balancing
- balancing device
- session
- information
- message
- 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 64
- 230000001360 synchronised effect Effects 0.000 claims description 47
- 238000004891 communication Methods 0.000 abstract description 2
- 230000006872 improvement Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000032683 aging Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 239000000523 sample Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施方式涉及网络通信技术领域,公开了一种信息同步方法与负载均衡***。信息同步方法包括:在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文;在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中;将第三单播报文发送到第二负载均衡设备,以供第二负载均衡设备根据第三单播报文中的会话信息创建对应的连接会话。本发明,在负载均衡***中有新的第二负载均衡设备加入时,以组播和单播混合的方式在第一负载均衡设备与第二负载均衡设备之间进行全量会话同步。
Description
技术领域
本发明实施方式涉及网络通信技术领域,特别涉及一种信息同步方法与负载均衡***。
背景技术
在内容分发网络(Content Delivery Network,简称CDN)***中,会在业务服务器前部署工作在传输层的负载均衡设备,负载均衡设备具备数据转发和负载分担均分流量功能,以使业务负载在多个业务服务器上的均衡分配设置,从而提高了CND***中业务服务器的利用效率,能够最大限度的发挥各业务服务器的业务处理能力,同时能够避免业务服务器的过载使用。
然而,当CDN***的任一负载均衡设备出现故障或者有新的负载均衡设备加入时,交换机或路由器会将出现故障的负载均衡设备上的业务流量调度到其他的负载均衡设备上,其他负载均衡设备由于未建立该业务流量的连接表项,会将该业务流量直接丢弃,造成了业务中断,只能由客户端重新发起连接会话来进行业务流量转发,影响了用户的访问体验,降低了服务质量。
发明内容
本发明实施方式的目的在于提供一种信息同步方法与负载均衡***,在负载均衡***中有新的第二负载均衡设备加入时,以组播和单播混合的方式在第一负载均衡设备与第二负载均衡设备之间进行全量会话同步,从而在第一负载均衡设备负责的业务报文对应的业务流量被调度到第二负载均衡设备时,第二负载均衡设备能够基于同步的连接会话进行正常的业务流量转发,避免业务流量中断或处理错误,能够更方便的对负载均衡***进行扩容和升级。
为解决上述技术问题,本发明的实施方式提供了一种信息同步方法,应用于负载均衡***中的第一负载均衡设备,负载均衡***还包括至少一个第二负载均衡设备;方法包括:在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文;在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中;将第三单播报文发送到第二负载均衡设备,以供第二负载均衡设备根据第三单播报文中的会话信息创建对应的连接会话。
本发明的实施方式还提供了一种信息同步方法,应用于负载均衡***中的第二负载均衡设备,负载均衡***还包括第一负载均衡设备;方法包括:向第一负载均衡设备发送表征需要进行全量同步的第一组播报文;在接收到第一负载均衡设备发送的表征同意进行信息同步的第一单播报文时,向第一负载均衡设备发送用于进行会话同步的第二单播报文;当接收到第一负载均衡设备发送的包括第一负载均衡设备建立的连接会话的会话信息的第三单播报文时,根据第三单播报文中的会话信息创建对应的连接会话。
本发明的实施方式还提供了一种负载均衡***,包括:第一负载均衡设备与至少一个第二负载均衡设备;第一负载均衡设备用于在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文;第二负载均衡设备用于在接收到第一单播报文时,向第一负载均衡设备发送用于进行会话同步的第二单播报文;第一负载均衡设备还用于在接收到第二单播报文时,将第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中,并将第三单播报文发送到第二负载均衡设备;第二负载均衡设备用于根据第三单播报文中的会话信息创建对应的连接会话。
本发明实施方式相对于现有技术而言,第一负载均衡设备在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文;在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中,并将第三单播报文发送到第二负载均衡设备,以供第二负载均衡设备根据第三单播报文中的会话信息创建对应的连接会话;即在负载均衡***中有新的第二负载均衡设备加入时,以组播和单播混合的方式在第一负载均衡设备与第二负载均衡设备之间进行全量会话同步,从而在第一负载均衡设备负责的业务报文对应的业务流量被调度到第二负载均衡设备时,第二负载均衡设备能够基于同步的连接会话进行正常的业务流量转发,避免业务流量中断或处理错误,能够更方便的对负载均衡***进行扩容和升级。
另外,在向第二负载均衡设备发送表征同意进行信息同步的第一单播报文之前,还包括:判断第二负载均衡设备的CPU核数与第一负载均衡设备的CPU核数是否相同;若第二负载均衡设备的CPU核数与第一负载均衡设备的CPU核数相同,进入向第二负载均衡设备发送表征同意进行信息同步的第一单播报文的步骤。本实施方式中,第一负载均衡设备能够对第二负载均衡设备的CPU核数的进行验证,从而能够在第二负载均衡设备与第一负载均衡设备配置相同时再进行全量同步,便于后续设定第一负载均衡设备中每个CPU创建的连接会话会由第三负载均衡设备中的同一个CPU负责进行处理,避免第二负载均衡设备中CPU之间的相互干扰,从而不会影响第二负载均衡设备中各CPU的转发性能。
另外,方法还包括:在客户端发起的连接会话处于连接成功状态时,判断连接会话是否为长连接,若连接会话为长连接,存储连接会话的会话信息;将第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中,包括:将存储的长连接的连接会话的会话信息加入到第三单播报文中。本实施方式中,第一负载均衡设备将存储的长连接的连接会话的会话信息加入到第三单播报文中,然后将第三单播报文发送到第二负载均衡设备,从而第二负载均衡设备在基于第三单播报文中会话信息创建连接会话时,仅创建长连接的连接会话,即第一负载均衡设备与第二负载均衡设备之间仅对长连接的连接会话进行同步,无需在负载均衡***的各负载均衡设备中存储过多的连接会话的会话信息,同时避免在新加入的第二负载均衡设备中创建过多的连接会话,从而不会影响各负载均衡设备的性能。
另外,第一负载均衡设备包括多个CPU;存储连接会话的会话信息,包括:将连接会话的会话信息存储到创建连接会话的CPU的同步信息表中;将存储的长连接的连接会话的会话信息加入到第三单播报文中,包括:对于每个CPU,生成包括CPU的同步信息表中的会话信息的第三单播报文;将第三单播报文发送到第二负载均衡设备,包括:将各CPU对应的第三单播报文分别发送到第二负载均衡设备。
另外,负载均衡***还包括至少一个第三负载均衡设备;方法还包括:将存储的连接会话的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备,以供第三负载均衡设备根据组播报文中的会话信息创建连接会话。本实施方式中,第一负载均衡设备在存储长连接的连接会话的会话信息后,将该连接会话的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备,从而第三负载均衡设备能够根据第二组播报文中的会话信息创建连接会话,提供了在负载均衡***中的负载均衡设备之间进行增量同步的一种具体实现方式,从而在第一负载均衡设备出现故障或者升级过程中,各连接会话相对应的业务报文被发送到第三负载均衡设备上时,第三负载均衡设备同样能够基于同步的连接会话对该业务报文的业务流量进行正常转发,不会导致该连接会话的服务中断,提升了用户的使用体验,提高了服务质量。同时,仅对长连接的连接会话进行同步,负载均衡***的各负载均衡设备中不会创建过多的连接会话,从而不会影响各负载均衡设备的性能。
另外,第一负载均衡设备与第三负载均衡均包括多个CPU,且每个第三负载均衡设备中的CPU与第一负载均衡设备中的CPU一一对应;存储连接会话的会话信息,包括:将连接会话的会话信息存储到创建连接会话的CPU的同步信息表中;将存储的连接会话的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备,以供第三负载均衡设备根据组播报文中的会话信息创建连接会话,包括:将各CPU的同步信息表中的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备,以供第三负载均衡设备根据第二组播报文中的会话信息在目标CPU上创建连接会话;目标CPU为第三负载均衡设备中与第一负载均衡设备中创建连接会话的CPU对应的CPU。本实施方式中,在第一负载均衡设备与第三负载均衡设备之间进行连接会话的增量同步时,第一负载均衡设备中的每个CPU创建的连接会话会由第三负载均衡设备中对应的CPU负责进行处理,避免第三负载均衡设备中CPU之间的相互干扰,从而不会影响第三负载均衡设备中各CPU的转发性能。
另外,将第二组播报文发送到第三负载均衡设备,包括:若第二组播报文中的会话信息的数量达到预设阈值或者到达预设的同步时间,将第二组播报文发送到第三负载均衡设备。本实施方式中,第一负载均衡设备在第二组播报文中的会话信息的数量达到预设阈值,再将第二组播报文发送到第三负载均衡设备,减少了各负载均衡设备之间的长连接会话的同步次数,避免影响各负载均衡设备的性能。在第二组播报文中的会话信息的数量未达到预设阈值,判断是否到达预设同步的时间,若到达了预设的同步时间,则将第二组播报文发送到第三负载均衡设备,即便在会话信息未达到预设阈值时,仍然能够进行长连接会话的同步。
另外,第一负载均衡设备与第三负载均衡设备中相对应的CPU具有相同的组播地址。
另外,第二组播报文还包括以下任意之一或任意组合:第一负载均衡设备的CPU核数、会话信息的字节大小、各会话信息所属的CPU、第二组播报文的协议信息。
附图说明
图1是本发明第一实施方式的信息同步方法所应用的负载均衡***的示意图;
图2是本发明第一实施方式的信息同步方法的具体流程图;
图3是本发明第二实施方式的信息同步方法的具体流程图;
图4是本发明第三实施方式的信息同步方法所应用的负载均衡***中的负载均衡设备的示意图;
图5是本发明第三实施方式的信息同步方法的具体流程图;
图6是本发明第四实施方式的信息同步方法所应用的负载均衡***中的示意图;
图7是本发明第四实施方式的信息同步方法的具体流程图;
图8是本发明第五实施方式的信息同步方法所应用的负载均衡***中的示意图;
图9是本发明第五实施方式的信息同步方法的具体流程图;
图10是本发明第六实施方式的信息同步方法的具体流程图。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
本发明的第一实施方式涉及一种信息同步方法,应用于负载均衡***,负载均衡***包括多个负载均衡设备,负载均衡设备为四层负载均衡设备,多个负载均衡设备中的任一负载均衡设备均可以作为第一负载均衡设备,当存在新的负载均衡设备(即第二负载均衡设备)加入负载均衡***时,第一负载均衡设备能够执行本实施例中的信息同步方法,与第二负载均衡设备之间进行全量同步。请参考图1,为负载均衡***所应用场景的示意图,负载均衡***的多个负载均衡设备1(任一负载均衡设备1均可以作为第一负载均衡设备)连接于同一个中继设备2(例如为路由器或交换机),中继设备2连接于服务器集群,该服务器集群中包括多个业务服务器3,多个业务服务器3对应同一个虚拟地址,每个业务服务器3具有对应的真实地址。其中,用户在通过客户端4访问业务服务器时,向中继设备2发送业务报文,业务报文可以为用户数据报协议的(User Datagram Protocol,简称UDP)的业务报文或传输控制协议的(Transmission Control Protocol,简称TCP)的业务报文;中继设备2在接收到业务报文后,基于ECMP等价路由算法从多个负载均衡设备1中选择一个负载均衡设备1(后称目标负载均衡设备),并将业务报文发送到目标负载均衡设备,目标负载均衡设备在接收到业务报文后,则会基于负载均衡算法为该业务报文选择一个业务服务器3(后称为目标业务服务器),然后为该业务报文创建相应的连接会话,并将该业务报文的业务流量转发到目标业务服务器。其中,连接会话的会话信息包括业务报文的五元组信息(例如源IP地址、目的IP地址、源端口标识、目的端口标识、协议类型等)、会话状态信息(例如连接建立状态、连接等待状态、连接关闭状态、接收数据状态)、所选择的业务服务器3的信息(例如该业务服务器3的IP地址、端口、可用状态等)。
本实施方式的信息同步方法的具体流程如图2所示。
步骤101,在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文。
具体而言,在负载均衡***中新的负载均衡设备(即第二负载均衡设备)上架后,需要进行全量连接会话同步,第二负载均衡设备会以组播方式向负载均衡***中所有的负载均衡设备1发送探测报文,该探测报文为表征需要进行全量同步的第一组播报文,其目的端口为预设的同步组播端口(例如为8848)。
中继设备2在负载均衡***的各负载均衡设备1的目的端口上复制多份第一组播报文,负载均衡设备1的目的端口可以为预设的同步组播端口(例如为8848),各负载均衡设备1在从自身的目的端口收到第一组播报文后,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文。其中,第一单播报文可以为用户数据报协议的(User DatagramProtocol,简称UDP)的单播报文,第一单播报文的目的端口为第二负载均衡设备的单播端口(例如为8849),目的地址为第二负载均衡设备的接口地址。
步骤102,在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中。
具体而言,第二负载均衡设备在接收到各负载均衡设备1发送的第一单播报文时,向最先响应第一单播报文的负载均衡设备1(以下称为第一负载均衡设备)发送用于进行会话同步的第二单播报文,以表示与第一负载均衡设备进行全量连接会话同步,其中,以最先响应第一单播报文的负载均衡设备1作为第一负载均衡设备,然不限于此,也可以预设任一负载均衡设备1为第一负载均衡设备;第一负载均衡设备在接收到该第二单播报文时,将自身所建立的连接会话的会话信息加入到第三单播报文中。
需要说明的是,本实施例中负载均衡***的所有负载均衡设备1之间已经完成了连接会话的同步,因此第二负载均衡设备仅需以单播方式向负载均衡***中的一个负载均衡设备1(即第一负载均衡设备)发起用于进行会话同步的第二单播报文,能够使得第二负载均衡与负载均衡***的各负载均衡设备1均保持连接会话的一致。
步骤103,将第三单播报文发送到第二负载均衡设备,以供第二负载均衡设备根据第三单播报文中的会话信息创建对应的连接会话。
具体而言,第一负载均衡设备将第三单播报文发送到第二负载均衡设备,第三单播报文为UDP的单播报文,第三单播报文的目的端口为第二负载均衡设备的单播端口(例如为8849),目的地址为第二负载均衡设备的接口地址,第二负载均衡设备在接收到第三单播报文时,根据第三单播报文中的会话信息创建对应的连接会话,从而能够将第一负载均衡设备中的连接会话同步到第二负载均衡设备中。
当第二负载均衡设备同步了第一负载均衡设备中的所有的连接会话的会话信息,并根据会话信息建立第二负载均衡设备与客户端的连接会话后,即第二负载均衡设备与第一负载均衡设备完成连接会话的全量同步后,可以向中继设备2发送表征可以开启路由的通知信息,从而在第一负载均衡设备出现异常情况时,可以将第一负载均衡设备的业务流量调度到第二负载均衡设备中,由于第二负载均衡设备已经同步了第一负载均衡设备中的所有的连接会话,此时第二负载均衡设备可以对第一负载均衡设备负载业务流量进行正常的转发,避免了业务流量中断或处理错误等情况的出现。其中,由于负载均衡***中所有的负载均衡设备1之间已经完成了连接会话的同步,因此第一负载均衡设备可以为负载均衡***中任意的负载均衡设备1,即任一负载均衡设备1的业务流量调度到第二负载均衡设备时,第二负载均衡设备均可以针对该业务流量进行正常的转发。
本实施方式相对于现有技术而言,第一负载均衡设备在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文;在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中,并将第三单播报文发送到第二负载均衡设备,以供第二负载均衡设备根据第三单播报文中的会话信息创建对应的连接会话;即在负载均衡***中有新的第二负载均衡设备加入时,以组播和单播混合的方式在第一负载均衡设备与第二负载均衡设备之间进行全量会话同步,从而在第一负载均衡设备负责的业务报文对应的业务流量被调度到第二负载均衡设备时,第二负载均衡设备能够基于同步的连接会话进行正常的业务流量转发,避免业务流量中断或处理错误,能够更方便的对负载均衡***进行扩容和升级。
本发明的第二实施方式涉及一种信息同步方法,本实施方式是在第一实施方式基础上的改进,主要改进之处在于:第一负载均衡设备与第二负载均衡设备之间仅对长连接的连接会话的会话信息进行同步。
本实施方式的信息同步方法的具体流程如图3所示。
步骤201,在客户端发起的连接会话处于连接成功状态时,判断连接会话是否为长连接;若是,则进入步骤202;若否,则直接结束。
步骤202,存储连接会话的会话信息。
具体而言,第一负载均衡设备在创建的连接会话的会话状态处于连接成功状态时,判断该连接会话是否长连接,具体判断方式为:在连接会话进入连接成功状态时,将该连接会话加入到定时器,若该连接会话在预设时间(例如为3秒)内维持连接状态,则判定该连接会话为长连接,存储该连接会话的会话信息;若该连接会话不是长连接,则不存储该连接会话的会话信息。
步骤203,在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文。与第一实施例中的步骤101大致相同,在此不再赘述。
步骤204,在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将存储的长连接的连接会话的会话信息加入到第三单播报文中。
步骤205,将第三单播报文发送到第二负载均衡设备,以供第二负载均衡设备根据第三单播报文中的会话信息创建对应的连接会话。
具体而言,第一负载均衡设备中仅存储长连接的连接会话的会话信息,其在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将存储的长连接的连接会话的会话信息加入到第三单播报文中,然后将第三单播报文发送到第二负载均衡设备,从而第二负载均衡设备在基于第三单播报文中会话信息创建连接会话时,仅创建长连接的连接会话,即第一负载均衡设备与第二负载均衡设备之间仅对长连接的连接会话进行同步。
本实施方式相对于第一实施方式而言,第一负载均衡设备将存储的长连接的连接会话的会话信息加入到第三单播报文中,然后将第三单播报文发送到第二负载均衡设备,从而第二负载均衡设备在基于第三单播报文中会话信息创建连接会话时,仅创建长连接的连接会话,即第一负载均衡设备与第二负载均衡设备之间仅对长连接的连接会话进行同步,无需在负载均衡***的各负载均衡设备中存储过多的连接会话的会话信息,同时避免在新加入的第二负载均衡设备中创建过多的连接会话,从而不会影响各负载均衡设备的性能。
本发明的第三实施方式涉及一种信息同步方法,本实施方式是在第二实施方式基础上的改进,主要改进之处在于:增加了对第二负载均衡设备的CPU核数的验证。
本实施方式中,请参考图4,负载均衡***的每个负载均衡设备1中均设有多核处理器,多个核处理器的处理器类型包括:同步处理器、CPU、控制处理器、抓包处理器;本实施例中,各负载均衡设备1的多核处理器中包括相同数量的CPU。
本实施方式的信息同步方法的具体流程如图5所示。
步骤301,在客户端发起的连接会话处于连接成功状态时,判断连接会话是否为长连接;若是,则进入步骤302;若否,则直接结束。
步骤302,将连接会话的会话信息存储到创建连接会话的CPU的同步信息表中。
具体而言,第一负载均衡设备在接收到业务报文后,会基于负载均衡算法为该业务报文选择一个业务服务器3(后称为目标业务服务器),然后基于网卡RSS(receive sidescaling)驱动技术为该业务报文选择一个CPU,能够保证同一个业务报文的业务流量由同一个CPU来转发;基于网卡RSS驱动技术为该业务报文选择CPU的具体方式为:第一负载均衡设备对业务报文进行解析得到五元组信息,并利用预设的哈希函数根据该五元组信息计算出HASH值,再基于该HASH值与重定向表的索引确定出一个CPU(后称第一CPU),将该业务报文分发到该第一CPU上,由该第一CPU为该业务报文创建相应的连接会话,并在该连接会话的会话状态处于连接成功状态时,判断该连接会话是否长连接,若该连接会话为长连接,将该连接会话的会话信息复制一份后存储到该第一CPU的同步信息表中;若该连接会话不是长连接,直接结束。在一个例子中,在第一CPU在确定了业务报文的连接会话为长连接后,可以将该连接会话的老化时间增加到预设值(例如300s),避免后续业务报文发生更新后频繁将该连接会话的会话信息更新到第一CPU的同步信息表中。
步骤303,在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,判断第二负载均衡设备的CPU核数与第一负载均衡设备的CPU核数是否相同。若是,则进入步骤304;若否,则直接结束。
步骤304,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文。
具体而言,在负载均衡***中新的负载均衡设备(即第二负载均衡设备)上架后,需要进行全量连接会话同步,第二负载均衡设备会以组播方式向负载均衡***的各个负载均衡设备1发送探测报文,同时第三负载均衡设备将自身的状态由初始状态修改为探测状态;该探测报文为表征需要进行全量同步的第一组播报文,第一组播报文的目的端口为预设的同步组播端口(例如为8848),目的组播地址可以为第一负载均衡设备中任一CPU的组播地址。
其中,第一组播报文可以为UDP的组播报文,在第一组播报文的消息头中,第一个字节为保留字段;第二字节为第二负载均衡设备的CPU核数,用于供第一负载均衡设备对第一组播报文的有效性进行校验,以确保各负载均衡设备具有相同数量CPU;第三字节与第四字节为空;第五字节为空;第六字节为第一组播报文的消息头的版本字段;第七字节为空;第八字节为探测字段。
第一负载均衡设备在接收到第一组播报文后,基于第一组播报文中携带的第二负载均衡设备的CPU核数,判断第二负载均衡设备的CPU核数是否与自身的CPU核数相同,并在判定第二负载均衡设备的CPU核数与自身的CPU核数相同时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文,并将自身的状态修改为响应状态。第一单播报文为UDP的单播报文,第一单播报文的目的端口为第二负载均衡设备的单播端口(例如为8849),目的地址为第二负载均衡设备的接口地址;第一单播报文的消息头与前述第一组播报文的消息头类似,主要不同之处在于:第一单播报文的消息头的第八字节为响应字段。
步骤305,在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,对于每个CPU,生成包括CPU的同步信息表中的会话信息的第三单播报文。
步骤306,将各CPU对应的第三单播报文分别发送到第二负载均衡设备,以供第二负载均衡设备根据第三单播报文中的会话信息创建对应的连接会话。
具体而言,第二负载均衡设备在接收到第一负载均衡设备发送的表征同意进行信息同步的第一单播报文时,以单播方式向第一负载均衡设备发送用于进行会话同步的第二单播报文,以与第一负载均衡设备进行全量连接会话同步,并将自身的状态修改为获取状态;其中,第二单播报文的报文载荷的消息头与前述第一组播报文的消息头类似,主要不同之处在于:第二单播报文的消息头的第八字节为获取字段。
第一负载均衡设备在接收到第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将自身的状态修改为进程状态,表示自身正在进行连接会话同步,第一负载均衡设备中的每个CPU会在空闲任务时段,遍历自身的同步信息表,将连接状态为正在连接状态或正常状态的会话信息放入各CPU对应的单播同步发送环中。第一负载均衡设备中的同步处理器会遍历各CPU的单播同步发送环,对于每个CPU,同步处理器基于该CPU的单播同步发送环中的会话信息生成一个第三单播报文,并将该CPU对应的第三单播报文发送到第二负载均衡设备。其中,第三单播报文为UDP的单播报文,第三单播报文的目的端口为第二负载均衡设备的单播端口(例如为8849),目的地址为第二负载均衡设备的接口地址;第三单播报文的报文载荷包括消息头与消息体,在消息头中,第一个字节为保留字段;第二字节为第一负载均衡设备的CPU核数,用于供第二负载均衡设备对第三单播报文的有效性进行校验,以确保各负载均衡设备具有相同数量CPU;第三字节与第四字节为单播同步发送环中的会话信息的字节大小;第五字节为单播同步发送环中的会话信息的数量;第六字节为第一组播报文的消息头的版本字段;第七字节为单播同步发送环的CPU的组播地址,以供第二负载均衡设备基于该组播地址确定创建将会话信息对应连接会话的CPU;第八字节为探测字段。第三单播报文的报文载荷的消息体中则包括单播同步发送环中的会话信息。其中,第一负载均衡设备的同步处理器在遍历完所有的CPU的单播同步发送环,并将各单播同步发送环中的会话信息以第三单播报文发送到第二负载均衡设备后,将第一负载均衡设备的状态修改为同步结束状态,并向第二负载均衡设备发送同步结束报文,该同步结束报文的报文载荷的消息头与前述第一组播报文类似,不同之处在于:同步结束报文的消息头的第八字节为结束字段。
第二负载均衡设备在接收到第一负载均衡设备发送的第三单播报文时,对于每个第三单播报文,基于该第三单播报文中携带的CPU的组播地址,确定出第二负载均衡设备中与该CPU对应的CPU,将该第三单播报文中的会话信息加入到第二负载均衡设备中对应的CPU的网卡队列中,以供该CPU在空闲任务时段取出网卡队列中的会话信息进行连接会话的同步,对于每个会话信息,第二负载均衡设备中的CPU会判断自身的同步信息表中是否存在该会话信息,若自身的同步信息表中不存在该会话信息,则创建相应的连接会话,并将该会话信息存储到同步信息表中;若自身的同步信息表中存在该会话信息,则更新同步信息表中该会话信息的老化时间与状态信息等。另外,第二负载均衡设备在接收到第一负载均衡设备发送的同步结束报文后,将自身的状态修改为同步结束状态,并向中继设备2发送表征可以开启路由的通知信息,中继设备2此时可以将业务报文发送到第二负载均衡设备,第二负载均衡设备能够进行正常的业务流量转发。
在第二负载均衡设备加入到负载均衡***中时,会预先配置第二负载均衡设备的CPU核数与第一负载均衡设备的CPU核数相等,且第二负载均衡设备的CPU与第一负载均衡设备的CPU一一对应;在一个例子中,第一负载均衡设备与第二负载均衡设备中相对应的CPU具有相同的组播地址。在第二负载均衡设备中,利用网卡Flow Director属性,在初始化过程中将各CPU的组播地址与网卡的队列绑定,例如CPU1对应的组播地址为238.88.88.94,该组播地址238.88.88.94被绑定到网卡队列0上,从而组播地址为238.88.88.94CPU创建的连接会话就会被与网卡队列0对应的CPU进行处理器创建相应连接会话;因此,第二负载均衡设备在接收道第三单播报文时,基于第三单播报文中携带的CPU的组播地址,确定出该第三单播报文中的会话信息所属的网卡队列,并将该第三单播报文中的会话信息加入对应的网卡队列,从而该第三单播报文中的会话信息能够由第二负载均衡设备中对应的CPU来创建,避免第二负载均衡设备中CPU之间的相互干扰,从而不会影响第二负载均衡设备中的CPU的转发性能。
本实施方式相对于第二实施方式而言,第一负载均衡设备能够对第二负载均衡设备的CPU核数的进行验证,从而能够在第二负载均衡设备与第一负载均衡设备配置项相同时再进行全量同步,便于后续设定第一负载均衡设备中每个CPU创建的连接会话会由第三负载均衡设备中的同一个CPU负责进行处理,避免第二负载均衡设备中CPU之间的相互干扰,从而不会影响第二负载均衡设备中各CPU的转发性能。
本发明的第四实施方式涉及一种信息同步方法,本实施方式是在第二实施方式基础上的改进,主要改进之处在于:在负载均衡***中的负载均衡设备之间进行增量同步。
本实施方式中,如图6所示,负载均衡***的多个负载均衡设备1中的任一负载均衡设备1均可以作为第一负载均衡设备11,其他的负载均衡设备1即为第三负载均衡设备12,另外负载均衡***中还包括新加入的至少一个第二负载均衡设备13(图中以一个为例)。
本实施方式的信息同步方法的具体流程如图7所示。
其中,步骤404至步骤406与步骤203至步骤205大致相同,在此不再赘述,主要不同之处在于:
步骤401,在客户端发起的连接会话处于连接成功状态时,判断连接会话是否为长连接;若是,则进入步骤202;若否,则直接结束。与第二实施方式中的步骤201大致相同,在此不再赘述。
步骤402,存储连接会话的会话信息。与第二实施方式中的步骤202大致相同,在此不再赘述。
步骤403,将存储的连接会话的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备,以供第三负载均衡设备根据组播报文中的会话信息创建连接会话。
具体而言,第一负载均衡设备在创建的连接会话为长连接时,存储该连接会话的会话信息,将存储的连接会话的会话信息添加到第二组播报文中,然后将该第二组播报文通过组播方式发送到各第三负载均衡设备,具体方式为:第一负载均衡设备以预设的同步组播端口(例如8848)作为目的端口发送组播报文,中继设备2在各第三负载均衡设备的目的端口上复制多份组播报文,各第三负载均衡设备的目的端口为预设的同步组播端口(例如为8848),各第三负载均衡设备在从各自的目的端口接收到组播报文后,根据组播报文中的会话信息创建相应的连接会话,实现了第一负载均衡设备与第三负载均衡设备之间的连接会话的同步。
需要说明的是,本实施例中的步骤401至步骤403提供了一种在负载均衡***中的负载均衡设备之间进行增量同步的一种具体实现方式,因此步骤401至步骤403的增量同步方法,可以与步骤404至步骤406所提供的全量同步方法分开独立实施。
本实施方式相对于第二实施方式而言,第一负载均衡设备在存储长连接的连接会话的会话信息后,将该连接会话的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备,从而第三负载均衡设备能够根据第二组播报文中的会话信息创建连接会话,提供了在负载均衡***中的负载均衡设备之间进行增量同步的一种具体实现方式,从而在第一负载均衡设备出现故障或者升级过程中,各连接会话相对应的业务报文被发送到第三负载均衡设备上时,第三负载均衡设备同样能够基于同步的连接会话对该业务报文的业务流量进行正常转发,不会导致该连接会话的服务中断,提升了用户的使用体验,提高了服务质量。同时,仅对长连接的连接会话进行同步,负载均衡***的各负载均衡设备中不会创建过多的连接会话,从而不会影响各负载均衡设备的性能。
本发明的第五实施方式涉及一种信息同步方法,本实施方式是在第四实施方式基础上的改进,主要改进之处在于:第一负载均衡设备和第三负载均衡设备中对应的CPU负责处理相同的连接会话。
请参考图8,负载均衡***的每个负载均衡设备中均设有多核处理器,多个核处理器的处理器类型包括:同步处理器、CPU、控制处理器、抓包处理器;本实施例中,各负载均衡设备的多核处理器中包括相同数量的CPU,各负载均衡设备的多核处理器中的CPU一一对应;即第一负载均衡设备与第三负载均衡均包括多个CPU,且每个第三负载均衡设备中的CPU与第一负载均衡设备中的CPU一一对应。在一个例子中,第一负载均衡设备与第三负载均衡设备中相对应的CPU具有相同的组播地址。
本实施方式的信息同步方法的具体流程如图9所示。
其中,步骤504至步骤506与步骤203至步骤205大致相同,在此不再赘述,主要不同之处在于:
步骤501,在客户端发起的连接会话处于连接成功状态时,判断连接会话是否为长连接;若是,则进入步骤302;若否,则直接结束。
步骤502,将连接会话的会话信息存储到创建连接会话的CPU的同步信息表中。
具体而言,第一负载均衡设备在接收到业务报文后,会基于负载均衡算法为该业务报文选择一个业务服务器3(后称为目标业务服务器),然后基于网卡RSS(receive sidescaling)驱动技术为该业务报文选择一个CPU,能够保证同一个业务报文的业务流量由同一个CPU来转发;基于网卡RSS驱动技术为该业务报文选择CPU的具体方式为:第一负载均衡设备对业务报文进行解析得到五元组信息,并利用预设的哈希函数根据该五元组信息计算出HASH值,再基于该HASH值与重定向表的索引确定出一个CPU(后称第一CPU),将该业务报文分发到该第一CPU上,由该第一CPU为该业务报文创建相应的连接会话,并在该连接会话的会话状态处于连接成功状态时,判断该连接会话是否长连接,若该连接会话为长连接,将该连接会话的会话信息复制一份后存储到该第一CPU的同步信息表中;若该连接会话不是长连接,直接结束。在一个例子中,在第一CPU在确定了业务报文的连接会话为长连接后,可以将该连接会话的老化时间增加到预设值(例如300s),避免后续业务报文发生更新后频繁将该连接会话的会话信息更新到第一CPU的同步信息表中。在一个例子中,在第一CPU在确定了业务报文的连接会话为长连接后,可以将该连接会话的老化时间增加到预设值(例如300s),避免后续业务报文发生更新后频繁将该连接会话的会话信息更新到第一CPU的同步信息表中。
步骤503,将各CPU的同步信息表中的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备,以供第三负载均衡设备根据第二组播报文中的会话信息在目标CPU上创建连接会话;目标CPU为第三负载均衡设备中与第一负载均衡设备中创建连接会话的CPU对应的CPU。
具体而言,第一负载均衡设备的多核处理器中的同步处理器遍历各CPU的同步信息表,将各CPU的同步信息表中的会话信息添加到第二组播报文中,然后将该组播报文发送到各第三负载均衡设备,对于每个第三负载均衡设备来说,其在接收到第二组播报文后,根据第二组播报文中包括的各会话信息,在与第一负载均衡设备中创建各会话信息对应的连接会话的CPU所对应的CPU上创建相应的连接会话。举例来说,各第三负载均衡设备利用网卡Flow Director属性,在初始化过程中将各CPU的组播地址与网卡的队列绑定,例如CPU1对应的组播地址为238.88.88.94,该组播地址238.88.88.94被绑定到网卡队列0上,从而组播地址为238.88.88.94CPU创建的连接会话就会被与网卡队列0对应的CPU进行处理器创建相应连接会话;即第三负载均衡设备在接收到第二组播报文后,基于第二组播报文中携带的创建各会话信息对应的连接会话的CPU的组播地址,确定各会话信息所属的网卡队列,然后将会话信息放入对应网卡队列中,从而各会话信息对应的连接会话能够由第三负载均衡设备中对应的CPU来创建。
在一个例子中,若第二组播报文中的会话信息的数量达到预设阈值或者到达预设的同步时间,将第二组播报文发送到第三负载均衡设备;即第一负载均衡设备的同步处理器遍历各CPU的同步信息表,将各CPU的同步信息表中的会话信息添加到第二组播报文后,会判断第二组播报文中的会话信息是否达到预设阈值,若第二组播报文中的会话信息的数量达到预设阈值(例如为5),再将第二组播报文发送到第三负载均衡设备,减少了各负载均衡设备之间的长连接会话的同步次数,避免影响各负载均衡设备的性能。若第二组播报文中的会话信息的数量未达到预设阈值,判断是否到达预设同步的时间,若到达了预设的同步时间,则将第二组播报文发送到第三负载均衡设备,即便在会话信息未达到预设阈值时,仍然能够进行长连接会话的同步。
在一个例子中,第二组播报文还包括以下任意之一或任意组合:第一负载均衡设备的CPU核数、会话信息的字节大小、各会话信息所属的CPU、第二组播报文的协议信息。举例来说,第二组播报文可以为UDP的组播报文,第一负载均衡设备的同步处理器遍历各CPU的同步信息表后,组合得到第二组播报文,第二组播报文的报文载荷包括消息头与消息体,在消息头中,第一个字节为保留字段;第二字节为CPU核数,用于供第三负载均衡设备对第二组播报文的有效性进行校验,以确保各负载均衡设备具有相同数量CPU;第三字节与第四字节为会话信息的字节大小;第五字节为会话信息的数量;第六字节为第二组播报文的消息头的版本字段;第七字节,各会话信息所属的CPU的组播地址,以供第三负载均衡设备基于该组播地址确定创建会话信息对应连接会话的CPU;第八字节为组播同步的协议信息,在该组播报文中,该协议信息为组播同步代码;消息体中则包括所有的会话信息。此时,第三负载均衡设备在接收到第二组播报文后,先判断第二组播报文的目的端口是否为预设的组播同步端口,再基于第二组播报文的第二字节判断第一负载均衡设备是否与第三负载均衡设备的CPU核数相同,然后再基于第二组播报文的第五字节判断会话信息的数量是否大于预设阈值(例如为5),当第二组播报文满足上述条件,再基于各会话信息所属的CPU将各会话信息放入对应的CPU的网卡队列中,第三负载均衡设备的各CPU则能够在空闲时间段取出网卡队列中的会话信息,对于每个会话信息,CPU会判断自身的同步信息表中是否存在该会话信息,若自身的同步信息表中不存在该会话信息,则创建相应的连接会话,并将该会话信息存储到同步信息表中;若自身的同步信息表中存在该会话信息,则更新同步信息表中该会话信息的老化时间与状态信息等。
本实施方式相对于第一实施方式而言,在第一负载均衡设备与第三负载均衡设备之间进行连接会话的增量同步时,第一负载均衡设备中的每个CPU创建的连接会话会由第三负载均衡设备中对应的CPU负责进行处理,避免第三负载均衡设备中CPU之间的相互干扰,从而不会影响第三负载均衡设备中各CPU的转发性能。
本发明的第六实施方式涉及一种信息同步方法,应用于负载均衡***,负载均衡***包括多个负载均衡设备,负载均衡设备为四层负载均衡设备,多个负载均衡设备中的任一负载均衡设备均可以作为第一负载均衡设备,当存在新的负载均衡设备(即第二负载均衡设备)加入负载均衡***时,第二负载均衡设备能够执行本实施例中的信息同步方法,与第一负载均衡设备之间进行全量同步。请参考图1,为负载均衡***所应用场景的示意图,负载均衡***的多个负载均衡设备1(任一负载均衡设备1均可以作为第一负载均衡设备)连接于同一个中继设备2(例如为路由器或交换机),中继设备2连接于服务器集群,该服务器集群中包括多个业务服务器3,多个业务服务器3对应同一个虚拟地址,每个业务服务器3具有对应的真实地址。
本实施方式的信息同步方法的具体流程如图10所示。
步骤601,向第一负载均衡设备发送表征需要进行全量同步的第一组播报文。
具体而言,在负载均衡***中新的负载均衡设备(即第二负载均衡设备)上架后,需要进行全量连接会话同步,第二负载均衡设备会以组播方式向负载均衡***的负载均衡设备1发送探测报文,该探测报文为表征需要进行全量同步的第一组播报文,第一组播报文的目的端口为预设的同步组播端口(例如为8848)。
步骤602,在接收到第一负载均衡设备发送的表征同意进行信息同步的第一单播报文时,向第一负载均衡设备发送用于进行会话同步的第二单播报文。
具体而言,中继设备2在载均衡***的各负载均衡设备1的目的端口上复制多份第一组播报文,负载均衡设备1的目的端口可以为预设的同步组播端口(例如为8848),各负载均衡设备1在从自身的目的端口收到第一组播报文后,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文。其中,第一单播报文可以为用户数据报协议的(UserDatagram Protocol,简称UDP)的单播报文,第一单播报文的目的端口为第二负载均衡设备的单播端口(例如为8849),目的地址为第二负载均衡设备的接口地址。
第二负载均衡设备在接收到各负载均衡设备1发送的第一单播报文时,向最先响应第一单播报文的负载均衡设备1发送用于进行会话同步的第二单播报文,以表示与第一负载均衡设备进行全量连接会话同步,其中,以最先响应第一单播报文的负载均衡设备1作为第一负载均衡设备,然不限于此,也可以预设任一负载均衡设备1为第一负载均衡设备;第一负载均衡设备在接收到该第二单播报文时,将自身所建立的连接会话的会话信息加入到第三单播报文中,并将第三单播报文发送到第二负载均衡设备,第三单播报文为UDP的单播报文,第三单播报文的目的端口为第二负载均衡设备的单播端口(例如为8849),目的地址为第二负载均衡设备的接口地址。
步骤603,当接收到第一负载均衡设备发送的包括第一负载均衡设备建立的连接会话的会话信息的第三单播报文时,根据第三单播报文中的会话信息创建对应的连接会话。
具体而言,第二负载均衡设备在接收到第三单播报文时,根据第三单播报文中的会话信息创建对应的连接会话,从而能够将第一负载均衡设备中的连接会话同步到第二负载均衡设备中。
由于第一实施例与本实施例相互对应,因此本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,在第一实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
本发明的第七实施方式涉及一种负载均衡***,包括多个负载均衡设备,负载均衡设备为四层负载均衡设备,多个负载均衡设备中的任一负载均衡设备均可以作为第一负载均衡设备,当存在新的负载均衡设备(即第二负载均衡设备)加入负载均衡***时,第一负载均衡设备能够执行本实施例中的信息同步方法,与第二负载均衡设备之间进行全量同步。请参考图1,为负载均衡***所应用场景的示意图,负载均衡***的多个负载均衡设备1(任一负载均衡设备1均可以作为第一负载均衡设备)连接于同一个中继设备2(例如为路由器或交换机),中继设备2连接于服务器集群,该服务器集群中包括多个业务服务器3,多个业务服务器3对应同一个虚拟地址,每个业务服务器3具有对应的真实地址。
第一负载均衡设备用于在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向第二负载均衡设备发送表征同意进行信息同步的第一单播报文。
第二负载均衡设备用于在接收到第一单播报文时,向第一负载均衡设备发送用于进行会话同步的第二单播报文。
第一负载均衡设备还用于在接收到第二单播报文时,将第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中,并将第三单播报文发送到第二负载均衡设备。
第二负载均衡设备用于根据第三单播报文中的会话信息创建对应的连接会话。
由于第一实施例、第六实施例与本实施例相互对应,因此本实施例可与第一实施例、第六实施例互相配合实施。第一实施例、第六实施例中提到的相关技术细节在本实施例中依然有效,在第一实施例、第六实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例、第六实施例中。
本发明的第八实施方式涉及一种负载均衡***,本实施方式是在第七实施方式基础上的改进,主要改进之处在于:第一负载均衡设备与第二负载均衡设备之间仅对长连接的连接会话的会话信息进行同步。
第一负载均衡设备还用于在客户端发起的连接会话处于连接成功状态时,判断连接会话是否为长连接,若连接会话为长连接,存储连接会话的会话信息。
第一负载均衡设备具体用于将存储的长连接的连接会话的会话信息加入到第三单播报文中。
由于第二实施例与本实施例相互对应,因此本实施例可与第二实施例互相配合实施。第二实施例中提到的相关技术细节在本实施例中依然有效,在第二实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第二实施例中。
本发明第九实施方式涉及一种负载均衡***,本实施方式是在第八实施方式基础上的改进,主要改进之处在于:增加了对第二负载均衡设备的CPU核数的验证。
本实施方式中,请参考图4,负载均衡***的每个负载均衡设备中均设有多核处理器,多个核处理器的处理器类型包括:同步处理器、CPU、控制处理器、抓包处理器;本实施例中,各负载均衡设备1的多核处理器中包括相同数量的CPU。
第一负载均衡设备用于将连接会话的会话信息存储到创建连接会话的CPU的同步信息表中。
第一负载均衡设备还用于在接收到第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,判断第二负载均衡设备的CPU核数与第一负载均衡设备的CPU核数是否相同,并在判定第二负载均衡设备的CPU核数与第一负载均衡设备的CPU核数相同时,向第二负载均衡设备发送第一单播报文。
第一负载均衡设备用于将连接会话的会话信息存储到创建连接会话的CPU的同步信息表中。
第一负载均衡设备具体用于对于每个CPU,生成包括CPU的同步信息表中的会话信息的第三单播报文。
第一负载均衡设备具体用于将各CPU对应的第三单播报文分别发送到第二负载均衡设备。
由于第三实施例与本实施例相互对应,因此本实施例可与第三实施例互相配合实施。第三实施例中提到的相关技术细节在本实施例中依然有效,在第三实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第三实施例中。
本发明的第十实施方式涉及一种负载均衡***,本实施方式是在第八实施方式基础上的改进,主要改进之处在于:负载均衡***还包括第三负载均衡设备,在第一负载均衡设备与第三负载均衡设备之间进行增量同步。
请参考图6,负载均衡***的多个负载均衡设备1中的任一负载均衡设备1均可以作为第一负载均衡设备11,其他的负载均衡设备1即为第三负载均衡设备12。
第一负载均衡设备还用于将存储的连接会话的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备,以供第三负载均衡设备根据组播报文中的会话信息创建连接会话。
由于第四实施例与本实施例相互对应,因此本实施例可与第四实施例互相配合实施。第四实施例中提到的相关技术细节在本实施例中依然有效,在第四实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第四实施例中。
本发明的第十一实施方式涉及一种负载均衡***,本实施方式是在第十实施方式基础上的改进,主要改进之处在于第一负载均衡设备和第三负载均衡设备中对应的CPU负责处理相同的连接会话。
请参考图7,负载均衡***的每个负载均衡设备中均设有多核处理器,多个核处理器的处理器类型包括:同步处理器、CPU、控制处理器、抓包处理器;本实施例中,各负载均衡设备的多核处理器中包括相同数量的CPU,各负载均衡设备的多核处理器中的CPU一一对应;即第一负载均衡设备与第三负载均衡均包括多个CPU,且每个第三负载均衡设备中的CPU与第一负载均衡设备中的CPU一一对应。在一个例子中,第一负载均衡设备与第三负载均衡设备中相对应的CPU具有相同的组播地址。
第一负载均衡设备用于将连接会话的会话信息存储到创建连接会话的CPU的同步信息表中。
第一负载均衡设备用于将各CPU的同步信息表中的会话信息添加到第二组播报文中,并将第二组播报文发送到第三负载均衡设备。在一个例子中,第一负载均衡设备具体用于在第二组播报文中的会话信息的数量达到预设阈值或者达到预设的同步时间时,将第二组播报文发送到第三负载均衡设备。
其中,第二组播报文还包括以下任意之一或任意组合:第一负载均衡设备的CPU核数、会话信息的字节大小、各会话信息所属的CPU、第二组播报文的协议信息。
第三负载均衡设备用于根据第二组播报文中的会话信息在目标CPU上创建连接会话;目标CPU为第三负载均衡设备中与第一负载均衡设备中创建连接会话的CPU对应的CPU。
由于第五实施例与本实施例相互对应,因此本实施例可与第五实施例互相配合实施。第五实施例中提到的相关技术细节在本实施例中依然有效,在第五实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第五实施例中。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施方式,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (19)
1.一种信息同步方法,其特征在于,应用于负载均衡***中的第一负载均衡设备,所述负载均衡***还包括至少一个第二负载均衡设备;所述方法包括:
在接收到所述第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向所述第二负载均衡设备发送表征同意进行信息同步的第一单播报文;
在接收到所述第二负载均衡设备发送的用于进行会话同步的第二单播报文时,将所述第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中;
将所述第三单播报文发送到所述第二负载均衡设备,以供所述第二负载均衡设备根据所述第三单播报文中的会话信息创建对应的连接会话。
2.根据权利要求1所述的信息同步方法,其特征在于,在所述向所述第二负载均衡设备发送表征同意进行信息同步的第一单播报文之前,还包括:
判断所述第二负载均衡设备的CPU核数与所述第一负载均衡设备的CPU核数是否相同;
若所述第二负载均衡设备的CPU核数与所述第一负载均衡设备的CPU核数相同,进入所述向所述第二负载均衡设备发送表征同意进行信息同步的第一单播报文的步骤。
3.根据权利要求1所述的信息同步方法,其特征在于,所述方法还包括:在客户端发起的连接会话处于连接成功状态时,判断所述连接会话是否为长连接,若所述连接会话为长连接,存储所述连接会话的会话信息;
所述将所述第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中,包括:
将存储的长连接的所述连接会话的会话信息加入到第三单播报文中。
4.根据权利要求3所述的信息同步方法,其特征在于,所述第一负载均衡设备包括多个CPU;所述存储所述连接会话的会话信息,包括:将所述连接会话的会话信息存储到创建所述连接会话的所述CPU的同步信息表中;
所述将存储的长连接的所述连接会话的会话信息加入到第三单播报文中,包括:
对于每个所述CPU,生成包括所述CPU的同步信息表中的会话信息的所述第三单播报文;
所述将所述第三单播报文发送到所述第二负载均衡设备,包括:
将各所述CPU对应的所述第三单播报文分别发送到所述第二负载均衡设备。
5.根据权利要求3所述的信息同步方法,其特征在于,所述负载均衡***还包括至少一个第三负载均衡设备;所述方法还包括:
将存储的连接会话的会话信息添加到第二组播报文中,并将所述第二组播报文发送到所述第三负载均衡设备,以供所述第三负载均衡设备根据所述组播报文中的会话信息创建所述连接会话。
6.根据权利要求5所述的信息同步方法,其特征在于,所述第一负载均衡设备与所述第三负载均衡均包括多个CPU,且每个所述第三负载均衡设备中的所述CPU与所述第一负载均衡设备中的所述CPU一一对应;所述存储所述连接会话的会话信息,包括:将所述连接会话的会话信息存储到创建所述连接会话的所述CPU的同步信息表中;
所述将存储的连接会话的会话信息添加到第二组播报文中,并将所述第二组播报文发送到所述第三负载均衡设备,以供所述第三负载均衡设备根据所述组播报文中的会话信息创建所述连接会话,包括:
将各所述CPU的同步信息表中的会话信息添加到第二组播报文中,并将所述第二组播报文发送到第三负载均衡设备,以供所述第三负载均衡设备根据所述第二组播报文中的会话信息在目标CPU上创建所述连接会话;所述目标CPU为所述第三负载均衡设备中与所述第一负载均衡设备中创建所述连接会话的所述CPU对应的所述CPU。
7.根据权利要求5所述的信息同步方法,其特征在于,所述将所述第二组播报文发送到所述第三负载均衡设备,包括:
若所述第二组播报文中的会话信息的数量达到预设阈值或者到达预设的同步时间,将所述第二组播报文发送到所述第三负载均衡设备。
8.根据权利要求5所述的信息同步方法,其特征在于,所述第一负载均衡设备与所述第三负载均衡设备中相对应的所述CPU具有相同的组播地址。
9.根据权利要求5所述的信息同步方法,其特征在于,所述第二组播报文还包括以下任意之一或任意组合:所述第一负载均衡设备的CPU核数、所述会话信息的字节大小、各所述会话信息所属的所述CPU、所述第二组播报文的协议信息。
10.一种信息同步方法,其特征在于,应用于负载均衡***中的第二负载均衡设备,所述负载均衡***还包括第一负载均衡设备;所述方法包括:
向所述第一负载均衡设备发送表征需要进行全量同步的第一组播报文;
在接收到所述第一负载均衡设备发送的表征同意进行信息同步的第一单播报文时,向所述第一负载均衡设备发送用于进行会话同步的第二单播报文;
当接收到所述第一负载均衡设备发送的包括所述第一负载均衡设备建立的连接会话的会话信息的第三单播报文时,根据所述第三单播报文中的会话信息创建对应的连接会话。
11.一种负载均衡***,其特征在于,包括:第一负载均衡设备与至少一个第二负载均衡设备;
所述第一负载均衡设备用于在接收到所述第二负载均衡设备发送的表征需要进行全量同步的第一组播报文时,向所述第二负载均衡设备发送表征同意进行信息同步的第一单播报文;
所述第二负载均衡设备用于在接收到所述第一单播报文时,向所述第一负载均衡设备发送用于进行会话同步的第二单播报文;
所述第一负载均衡设备还用于在接收到所述第二单播报文时,将所述第一负载均衡设备建立的连接会话的会话信息加入到第三单播报文中,并将所述第三单播报文发送到所述第二负载均衡设备;
所述第二负载均衡设备用于根据所述第三单播报文中的会话信息创建对应的连接会话。
12.根据权利要求11所述的负载均衡***,其特征在于,所述第一负载均衡设备还用于判断所述第二负载均衡设备的CPU核数与所述第一负载均衡设备的CPU核数是否相同,并在判定所述第二负载均衡设备的CPU核数与所述第一负载均衡设备的CPU核数相同时,向所述第二负载均衡设备发送所述第一单播报文。
13.根据权利要求11所述的负载均衡***,其特征在于,所述第一负载均衡设备还用于在客户端发起的连接会话处于连接成功状态时,判断所述连接会话是否为长连接,若所述连接会话为长连接,存储所述连接会话的会话信息;
所述第一负载均衡设备具体用于将存储的长连接的所述连接会话的会话信息加入到第三单播报文中。
14.根据权利要求13所述的负载均衡***,其特征在于,所述第一负载均衡设备包括多个CPU;
所述第一负载均衡设备用于将所述连接会话的会话信息存储到创建所述连接会话的所述CPU的同步信息表中;
所述第一负载均衡设备具体用于对于每个所述CPU,生成包括所述CPU的同步信息表中的会话信息的所述第三单播报文;
所述第一负载均衡设备具体用于将各所述CPU对应的所述第三单播报文分别发送到所述第二负载均衡设备。
15.根据权利要求13所述的负载均衡***,其特征在于,所述负载均衡***还包括至少一个第三负载均衡设备;
所述第一负载均衡设备还用于将存储的连接会话的会话信息添加到第二组播报文中,并将所述第二组播报文发送到所述第三负载均衡设备,以供所述第三负载均衡设备根据所述组播报文中的会话信息创建所述连接会话。
16.根据权利要求15所述的负载均衡***,其特征在于,所述第一负载均衡设备与所述第三负载均衡均包括多个CPU,且每个所述第三负载均衡设备中的所述CPU与所述第一负载均衡设备中的所述CPU一一对应;
所述第一负载均衡设备用于将所述连接会话的会话信息存储到创建所述连接会话的所述CPU的同步信息表中;
所述第一负载均衡设备用于将各所述CPU的同步信息表中的会话信息添加到第二组播报文中,并将所述第二组播报文发送到第三负载均衡设备;
所述第三负载均衡设备用于根据所述第二组播报文中的会话信息在目标CPU上创建所述连接会话;所述目标CPU为所述第三负载均衡设备中与所述第一负载均衡设备中创建所述连接会话的所述CPU对应的所述CPU。
17.根据权利要求15所述的负载均衡***,其特征在于,所述第一负载均衡设备具体用于在所述第二组播报文中的会话信息的数量达到预设阈值或者达到预设的同步时间时,将所述第二组播报文发送到所述第三负载均衡设备。
18.根据权利要求15所述的负载均衡***,其特征在于,所述第一负载均衡设备与所述第三负载均衡设备中相对应的所述CPU具有相同的组播地址。
19.根据权利要求15所述的负载均衡***,其特征在于,所述第二组播报文还包括以下任意之一或任意组合:所述第一负载均衡设备的CPU核数、所述会话信息的字节大小、各所述会话信息所属的所述CPU、所述第二组播报文的协议信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010935366.3A CN112217735A (zh) | 2020-09-08 | 2020-09-08 | 信息同步方法与负载均衡*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010935366.3A CN112217735A (zh) | 2020-09-08 | 2020-09-08 | 信息同步方法与负载均衡*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112217735A true CN112217735A (zh) | 2021-01-12 |
Family
ID=74050169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010935366.3A Pending CN112217735A (zh) | 2020-09-08 | 2020-09-08 | 信息同步方法与负载均衡*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112217735A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749015A (zh) * | 2021-01-25 | 2021-05-04 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置 |
CN112769959A (zh) * | 2021-03-04 | 2021-05-07 | 北京字节跳动网络技术有限公司 | 会话同步方法、装置、第一节点、第二节点、***及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170432A (zh) * | 2006-10-27 | 2008-04-30 | 中兴通讯股份有限公司 | 一种实现组播业务保护倒换和负载均衡的方法 |
CN102769626A (zh) * | 2012-07-26 | 2012-11-07 | 北京神州绿盟信息安全科技股份有限公司 | 一种会话信息同步方法、装置以及*** |
US20140108341A1 (en) * | 2011-09-23 | 2014-04-17 | Hybrid Logic Ltd | System for live-migration and automated recovery of applications in a distributed system |
CN107454155A (zh) * | 2017-07-25 | 2017-12-08 | 北京三快在线科技有限公司 | 一种基于负载均衡集群的故障处理方法、装置以及*** |
CN107846433A (zh) * | 2016-09-19 | 2018-03-27 | 阿里巴巴集团控股有限公司 | 一种会话信息同步的方法、装置和*** |
CN109510770A (zh) * | 2018-12-07 | 2019-03-22 | 北京金山云网络技术有限公司 | 负载均衡节点之间的信息同步方法、装置和处理设备 |
CN109547580A (zh) * | 2019-01-22 | 2019-03-29 | 网宿科技股份有限公司 | 一种处理数据报文的方法和装置 |
CN111416852A (zh) * | 2020-03-16 | 2020-07-14 | 优刻得科技股份有限公司 | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 |
CN111416851A (zh) * | 2020-03-16 | 2020-07-14 | 优刻得科技股份有限公司 | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 |
-
2020
- 2020-09-08 CN CN202010935366.3A patent/CN112217735A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170432A (zh) * | 2006-10-27 | 2008-04-30 | 中兴通讯股份有限公司 | 一种实现组播业务保护倒换和负载均衡的方法 |
US20140108341A1 (en) * | 2011-09-23 | 2014-04-17 | Hybrid Logic Ltd | System for live-migration and automated recovery of applications in a distributed system |
CN102769626A (zh) * | 2012-07-26 | 2012-11-07 | 北京神州绿盟信息安全科技股份有限公司 | 一种会话信息同步方法、装置以及*** |
CN107846433A (zh) * | 2016-09-19 | 2018-03-27 | 阿里巴巴集团控股有限公司 | 一种会话信息同步的方法、装置和*** |
CN107454155A (zh) * | 2017-07-25 | 2017-12-08 | 北京三快在线科技有限公司 | 一种基于负载均衡集群的故障处理方法、装置以及*** |
CN109510770A (zh) * | 2018-12-07 | 2019-03-22 | 北京金山云网络技术有限公司 | 负载均衡节点之间的信息同步方法、装置和处理设备 |
CN109547580A (zh) * | 2019-01-22 | 2019-03-29 | 网宿科技股份有限公司 | 一种处理数据报文的方法和装置 |
CN111416852A (zh) * | 2020-03-16 | 2020-07-14 | 优刻得科技股份有限公司 | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 |
CN111416851A (zh) * | 2020-03-16 | 2020-07-14 | 优刻得科技股份有限公司 | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749015A (zh) * | 2021-01-25 | 2021-05-04 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置 |
CN112749015B (zh) * | 2021-01-25 | 2023-07-25 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置 |
CN112769959A (zh) * | 2021-03-04 | 2021-05-07 | 北京字节跳动网络技术有限公司 | 会话同步方法、装置、第一节点、第二节点、***及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8676980B2 (en) | Distributed load balancer in a virtual machine environment | |
US11277341B2 (en) | Resilient segment routing service hunting with TCP session stickiness | |
US8307024B2 (en) | Assisted peer-to-peer media streaming | |
WO2018077238A1 (zh) | 一种基于交换机的负载均衡***及方法 | |
EP4009593A1 (en) | Data transmission method and apparatus, network card and storage medium | |
WO2020155293A1 (zh) | 一种推流方法、***及服务器 | |
CN111200622B (zh) | 一种资源传输方法及装置、存储介质 | |
US9621412B2 (en) | Method for guaranteeing service continuity in a telecommunication network and system thereof | |
US20140297774A1 (en) | System for managing configuration updates in cluster of computational devices | |
US10952264B2 (en) | Persistent distribution of connectionless traffic supporting virtual connection migration | |
WO2016173403A1 (zh) | 路由设备、负载均衡设备、消息分发方法及*** | |
CN112929264B (zh) | 业务流量传输方法、***及网络设备 | |
US20150373135A1 (en) | Wide area network optimization | |
CN110768708B (zh) | 一种基于通信卫星的组播方法、服务器和终端 | |
US11057475B2 (en) | Methods, apparatus and systems for resuming transmission link | |
CN113315665B (zh) | 一种双网卡终端设备的报文发送方法、装置、设备及介质 | |
CN112217735A (zh) | 信息同步方法与负载均衡*** | |
US20130308637A1 (en) | Multicast data delivery over mixed multicast and non-multicast networks | |
CN114553799A (zh) | 基于可编程数据平面的组播转发方法、装置、设备及介质 | |
CN111756780B (zh) | 一种同步连接信息的方法和负载均衡*** | |
US20140226464A1 (en) | PORT Based Redundant Link Protection | |
US10680930B2 (en) | Method and apparatus for communication in virtual network | |
CN109842567B (zh) | 数据分发方法以及分发服务器 | |
US20150055662A1 (en) | Internet group management protocol (igmp) leave message processing synchronization | |
CN108900422B (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: 20210112 |