CN107846476B - 一种信息同步方法、设备及存储介质 - Google Patents
一种信息同步方法、设备及存储介质 Download PDFInfo
- Publication number
- CN107846476B CN107846476B CN201711367354.XA CN201711367354A CN107846476B CN 107846476 B CN107846476 B CN 107846476B CN 201711367354 A CN201711367354 A CN 201711367354A CN 107846476 B CN107846476 B CN 107846476B
- Authority
- CN
- China
- Prior art keywords
- session information
- session
- information
- forwarding processor
- synchronization
- 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.)
- Active
Links
Images
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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种信息同步方法,以解决现有技术中缺乏对会话信息进行全量同步的技术问题。该方法应用于主服务器,该主服务器包括转发处理器以及非转发处理器,该转发处理器更新同步会话信息链表,同步会话信息链表中包括按照会话创建时间排序的会话信息,该方法包括:响应于全量同步的触发信息,转发处理器确定同步会话信息链表中的当前最新会话信息;非转发处理器读取同步会话信息链表,获得同步会话信息链表中当前最新会话信息以及当前最新会话信息之前的全部会话信息作为全量同步信息;非转发处理器将全量同步信息发送给备用服务器。本申请还公开了一种主服务器、用于信息同步的存储介质以及计算机程序产品。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种信息同步方法、设备及存储介质。
背景技术
对于防火墙设备来说,主要的功能是基于会话表对报文进行转发处理。为了实现防火墙设备的高可用性,可以设置主服务器以及备用服务器,在主服务器进行报文转发处理的过程中,将会话状态改变的会话信息发送给备用服务器,使备用服务器根据接收到的会话信息更新会话表,实现主服务器与备用服务器之间的会话表同步。也即主服务器与备用服务器之间的会话表同步是基于会话状态改变而即时更新的,并没有对全部会话信息进行全量同步的过程。但是,在一些场景下,例如备用服务器刚刚启动,备用服务器中没有会话表,如果无法实现快速的会话信息全量同步,此时又恰好需要将备用服务器切换为主服务器,则会导致大量会话中断。
发明内容
有鉴于此,本申请实施例提供一种信息同步方法、设备及存储介质、程序产品,以解决现有技术中缺乏对会话信息进行全量同步的技术问题。
为解决上述问题,本申请实施例提供的技术方案如下:
一种信息同步方法,所述方法应用于主服务器,所述主服务器包括转发处理器以及非转发处理器,所述转发处理器更新同步会话信息链表,所述同步会话信息链表中包括按照会话创建时间排序的会话信息;所述方法包括:
响应于全量同步的触发信息,所述转发处理器确定所述同步会话信息链表中的当前最新会话信息;
所述非转发处理器读取所述同步会话信息链表,获得所述同步会话信息链表中所述当前最新会话信息以及所述当前最新会话信息之前的全部会话信息作为全量同步信息;
所述非转发处理器将所述全量同步信息发送给备用服务器。
可选的,所述方法还包括:
所述转发处理器记录所述当前最新会话信息的会话创建时间;
所述转发处理器将在所述当前最新会话信息的会话创建时间之后新建的会话信息发送给所述备用服务器,并通知所述备用服务器删除在当前最新会话信息的会话创建时间之后删除的会话信息;
当会话状态更新时,所述转发处理器判断会话状态更新的会话信息对应的会话创建时间是否在所述当前最新会话信息的会话创建时间之后,如果是,将更新后的会话信息发送给所述备用服务器,如果否,更新后的会话信息不发送给所述备用服务器。
可选的,所述非转发处理器将所述全量同步信息发送给备用服务器,包括:
所述非转发处理器建立与网卡之间的第一发送队列,所述网卡与所述备用服务器相连;所述第一发送队列的长度是第二发送队列的长度的n倍,所述第二发送队列为所述转发处理器与所述网卡之间的信息发送队列,n为大于或等于1的整数;
所述非转发处理器通过所述第一发送队列将所述全量同步信息发送给备用服务器。
可选的,所述主服务器包括至少一个转发处理器以及至少一个非转发处理器,所述转发处理器、所述非转发处理器以及所述同步会话信息链表之间具有一一对应关系。
一种主服务器,所述主服务器包括转发处理器以及非转发处理器;
所述转发处理器包括:
更新单元,用于更新同步会话信息链表,所述同步会话信息链表中包括按照会话创建时间排序的会话信息;
确定单元,用于响应于全量同步的触发信息,确定所述同步会话信息链表中的当前最新会话信息;
所述非转发处理器包括:
读取单元,用于读取所述同步会话信息链表,获得所述同步会话信息链表中所述当前最新会话信息以及所述当前最新会话信息之前的全部会话信息作为全量同步信息;
第一发送单元,用于将所述全量同步信息发送给备用服务器。
可选的,所述转发处理器还包括:
记录单元,用于记录所述当前最新会话信息的会话创建时间;
第二发送单元,用于将在所述当前最新会话信息的会话创建时间之后新建的会话信息发送给所述备用服务器,并通知所述备用服务器删除在当前最新会话信息的会话创建时间之后删除的会话信息;
判断单元,用于当会话状态更新时,判断会话状态更新的会话信息对应的会话创建时间是否在所述当前最新会话信息的会话创建时间之后;
第三发送单元,用于如果所述判断单元的判断结果为是,将更新后的会话信息发送给所述备用服务器,如果所述判断单元的判断结果为否,更新后的会话信息不发送给所述备用服务器。
可选的,所述第一发送单元包括:
建立子单元,用于建立与网卡之间的第一发送队列,所述网卡与所述备用服务器相连;所述第一发送队列的长度是第二发送队列的长度的n倍,所述第二发送队列为所述转发处理器与所述网卡之间的信息发送队列,n为大于或等于1的整数。
发送子单元,用于利用所述同步线程通过所述第一发送队列将所述全量同步信息发送给备用服务器。
可选的,所述主服务器包括至少一个转发处理器以及至少一个非转发处理器,所述转发处理器、所述非转发处理器以及所述同步会话信息链表之间具有一一对应关系。
一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述的信息同步方法。
一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述的信息同步方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例通过转发处理器更新包括会话信息的同步会话信息链表,在需要进行全量同步时,在该同步会话信息链表中确定最新的一条会话信息,通过非转发处理器读取同步会话信息链表中最新会话信息以及最新会话信息之前的全部会话信息作为全量同步信息,进行会话信息同步,从而实现了主服务器与备用服务器之间会话信息的全量同步,同时由非转发处理器读取并发送全量同步信息,不会影响转发处理器的正常转发功能,可以在实现全量同步的实现保证防火墙设备的正常运行。
附图说明
图1为本申请实施例中提供的防火墙设备的结构示意图;
图2为本申请实施例提供的一种信息同步方法的方法流程图;
图3为本申请实施例提供的一种主服务器的结构示意图;
图4为本申请实施例提供的一种同步会话信息链表的示意图;
图5为本申请实施例提供的另一种信息同步的方法;
图6为本申请实施例提供的另一种主服务器的结构示意图;
图7为本申请实施例提供的一种主服务器的结构图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
对于防火墙设备来说,其主要功能是基于会话表对报文进行转发处理。为了实现防火墙设备的高可用性,可以设置主服务器和备用服务器。如图1 所示,为防火墙设备的应用场景示意图,其中包括主服务器101和备用服务器 102。在实际工作过程中,主服务器101将需要同步的会话信息发送至备用服务器102,具体的,当会话信息更新时,主服务器101将需要更新的相关会话信息发送至备用服务器102,备用服务器102接收到相关会话信息后,对备用服务器102中的会话信息进行更新,以实现主服务器101和备用服务器102之间的会话信息同步。
也就是说,防火墙设备中的主服务器101和备用服务器102之间会话信息的即时同步,是基于会话信息的更新而实现的,即备用服务器102中的会话信息随着会话信息的改变而即时更新的,没有主服务器101将会话信息全量同步至备用服务器102的过程。
但是,在一些情况下,若没有全量同步会话信息的过程,可能在报文转发过程中出现大量会话中断的情况,影响防火墙设备的工作性能。
例如,一台防火墙设备服务器A上的会话信息数量为2000万,为了实现该防火墙设备的高可用性,现增加服务器B作为备用服务器,由于服务器B刚刚启动,其上的会话信息数量为0。此时,若将服务器B设置为主服务器,则转发过程中的流量将切换至服务器B上,然而,由于服务器A上的2000万会话信息并不能在短时间内同步至服务器B上,因此,转发流量均切换至服务器B 上后,会导致大量会话传输中断。
又例如,防火墙设备设置具有高可用性的主服务器C和备用服务器D,二者同时工作,且会话信息即时同步正常,主服务器C会话信息数量大概为1500 万,相应的,备用服务器D的会话信息数量也大概为1500万。若主服务器C 突然出现故障,无法正常工作,需要将流量全部切换至备用服务器D中,即主服务器C发生故障后,由备用服务器D执行主服务器的工作。当主服务器C 的故障被修复再次重新恢复正常工作时,流量将重新切换至主服务器C,然而,在主服务器C故障的过程中备用服务器D上的会话信息,并不能在短时间内同步至主服务器C上,因此,同样会出现部分会话传输中断的现象。
因此,若没有全量同步会话信息,可能会导致在报文转发过程中出现大量会话中断的情况,影响防火墙设备的工作性能。
经发明人研究发现,目前大多数厂商没有实现全量同步主要有以下原因:
全量同步的实现难度较大。在全量同步的过程中,一般需要主服务器同步的信息较多,并且在此过程中,主服务器还需要执行流量转发工作。主服务器同时进行流量转发和会话消息的全量同步,很可能导致同步消息发送失败,甚至正常流量无法处理发生丢包等情况。同时,在全量同步进行的过程中,因会话信息的改变而即时同步的会话消息,将造成会话信息的重复同步。
因此,为了解决上述因主服务器和备用服务器间不能全量同步,而产生的问题,本申请实施例提供了一种信息同步方法,以实现主服务器和备用服务器信息的全量同步。
本申请实施例提供的信息同步方法,通过转发处理器更新包括会话信息的同步会话信息链表,在需要进行全量同步时,在该同步会话信息链表中确定最新的一条会话信息,通过非转发处理器读取同步会话信息链表中最新会话信息,以及最新会话信息前全部的会话信息作为全量同步信息,进行会话信息同步。从而实现了主服务器和备用服务器之间会话信息的全量同步,并且由非转发处理器读取并发送全量同步信息,不会影响转发处理器正常转发功能的实现,保证该防火墙设备既能正常运行,又能够实现全量同步。
参见图2,为本实施例提供的一种信息同步方法,该方法应用于主服务器。如图3所示,该主服务器包括转发处理器301以及非转发处理器302,其中,转发处理器更新同步会话信息链表,该同步会话信息链表中包括按照会话创建时间排序的会话信息。该方法包括:
步骤201:响应于全量同步的触发信息,转发处理器确定同步会话信息链表中的当前最新会话信息。
当需要进行全量同步时,主服务器可以获取全量同步触发信息,响应于该全量同步触发信息,转发处理器会确定同步会话信息链表中的当前最新会话消息。确定当前最新会话消息的目的在于以便在后续步骤中确定需要进行全量同步的会话信息的范围。在具体实现中,可以对当前最新会话消息进行标记。需要说明的是,转发处理器会针对于自身所在的主服务器创建一个同步会话信息链表,并按照会话的创建时间将会话信息添加至该同步会话信息链表中,即保证该同步会话信息链表的表头是最新创建的会话信息,表尾是最早创建的会话信息。
随着会话信息的改变,转发处理器会相应地更新该同步会话信息链表。
当新建会话时,向该同步会话信息链表中添加新建的会话信息。即新建的会话信息作为最新创建的会话信息,将被添加至同步会话信息链表的表头处。
当删除会话时,从该同步会话信息链表中删除相应的会话信息。即在同步会话信息链表中,找到该需要删除的会话信息,相应地,删除该会话信息。具体的,在创建会话信息时一般会为该会话信息配置相应的标识,当需要删除会话时,在同步会话信息链表中查找该需要删除的会话信息的标识,将与该找到的标识对应会话信息删除。
当会话状态更新时,更新该同步会话信息链表中相应的会话信息。即在同步会话信息链表中,找到该需要更新的会话信息,对该会话信息进行更新。与删除会话信息的实现方法类似,也可以通过查找会话信息标识,在同步会话信息链表中,查找需要更新的会话信息,进而对其进行更新。
为了便于理解,现结合图4对上述同步会话信息链表进行介绍:
如图4所示,为本实施例提供的一种同步会话信息链表的示意图。在该同步会话信息链表中,会话信息0位于该同步会话信息链表的表尾,即说明该会话信息0为最早创建的会话信息;会话信息4位于该同步会话信息链表的表头,即说明该会话信息4为最新创建的会话信息;相应的,在会话信息0和会话信息4之间的会话信息,即为在会话信息0创建之后且在会话信息4创建之前,创建的会话信息。
当需要新建会话5时,则向该同步会话信息链表中添加该新建的会话信息 5,并将在同步会话信息链表的表头处添加会话信息5,该会话信息5为当前最新创建的会话信息。
当需要删除会话3时,则在同步会话信息链表中找到会话信息3,将其从同步会话信息链表中删除。
当需要会话2的状态发生更新时,则在同步会话信息链表中找到会话信息 2,相应的,更新该会话信息2。
步骤202:非转发处理器读取同步会话信息链表,获得同步会话信息链表中当前最新会话信息以及当前最新会话信息之前的全部会话信息作为全量同步信息。
步骤203:非转发处理器将全量同步信息发送给备用服务器。
非转发处理器读取上述同步会话信息链表,可以读取到该同步会话信息链表中当前最新会话信息,以及该同步会话信息链表中在当前最新会话信息之前的全部会话信息,将这些会话信息作为全量同步信息,发送至备用服务器,以实现主服务器和备用服务器中会话信息的全量同步。在具体实现中,非转发处理器可以通过遍历同步会话信息链表的方式,从当前最新会话信息开始向前读取在当前最新会话信息之前的全部会话信息,以确定全量同步信息。
下面仍以图4所示的同步会话信息链表为例,介绍本实施例提供的获取全量同步信息的过程:
会话信息4作为当前最新会话信息,非转发处理器除了需要获取会话信息 4之外,还需要在同步会话信息链表中获取会话信息4之前的全部会话信息,即需要获取会话信息0、会话信息1、会话信息2和会话信息3,将会话信息0-4 均作为全量同步信息,由非转发处理器将上述全量同步信息发送给备用服务器。
由于上述信息同步的过程,采用非转发处理器对同步会话信息链表中的会话信息进行全量同步,并没有采用转发处理器对会话信息进行全量同步,因此,全量同步过程的进行完全不会影响转发处理器执行正常的流量转发工作,即系统整体的转发性能在全量同步的过程中不会受到任何影响。
本实施例提供的信息同步方法,通过转发处理器更新包括会话信息的同步会话信息链表,在需要进行全量同步时,在该同步会话信息链表中确定最新的一条会话信息,通过非转发处理器读取同步会话信息链表中最新会话信息,以及最新会话信息前全部的会话信息作为全量同步信息,进行会话信息同步。从而实现了主服务器和备用服务器之间会话信息的全量同步,并且由非转发处理器读取并发送全量同步信息,不会影响转发处理器正常转发功能的实现,保证该防火墙设备既能正常运行,又能够实现全量同步。
在全量同步的过程中,随着会话信息的改变更新,即时同步也在进行。即针对于同一会话信息,可能既进行了全量同步又进行了即时同步,重复同步了两遍。为了避免对同一会话信息进行全量同步和即时同步两次重复的同步,本申请实施例又提供了一种信息同步的方法。
参见图5,为本申请实施例提供了另一种信息同步的方法,该方法包括:
步骤501:转发处理器记录当前最新会话信息的会话创建时间。
由于转发处理器根据会话创建时间,将会话信息加入同步会话信息链表中,因此,在将会话信息加入同步会话信息链表的同时,还可以记录各会话信息的会话创建时间。转发处理器记录当前最新会话信息的会话创建时间,将在该会话创建时间之前创建的会话信息作为需要进行全量同步的会话信息;相应的,在该会话创建时间之后创建的会话信息即为不需要进行全量同步的会话信息。
步骤502:转发处理器将在当前最新会话信息的会话创建时间之后新建的会话信息发送给备用服务器,并通知备用服务器删除在当前最新会话信息的会话创建时间之后删除的会话信息。
由于在同步会话信息链表中当前最新会话信息的会话创建时间之后新建的会话信息,为不需要进行全量同步的会话信息,因此,可以采用即时同步的方法将该新建的会话信息发送至备用服务器,即在该会话信息新建的过程中,将该会话信息发送至备用服务器。
在同步会话信息链表中当前最新会话信息的会话创建时间之后删除的会话信息,由于在会话信息全量同步的过程中,已经将该需要删除的会话信息同步至备用服务器,因此,还需要通知备用服务器删除在当前最新会话信息的会话创建时间之后删除的会话信息,即以即时同步的方式同步该删除的会话信息。具体实现时,也可以通过查找会话信息的标识,在备用服务器中查找到该在当前最新会话信息的会话创建时间之后删除的会话信息,并将其删除。
步骤503:当会话状态更新时,转发处理器判断会话状态更新的会话信息对应的会话创建时间是否在当前最新会话信息的会话创建时间之后。如果是,执行步骤504;如果否,执行步骤505。
步骤504:将更新后的会话信息发送给备用服务器。
步骤505::更新后的会话信息不发送给备用服务器。
当会话状态需要更新时,转发处理器会判断该会话状态更新的会话信息对应的会话创建时间是否在同步会话信息链表中当前最新会话信息的会话创建时间之后,若该会话状态更新的会话信息对应的会话创建时间在当前最新会话信息的会话创建时间之后,则说明该会话状态更新的会话信息为需要进行即时同步的会话信息,相应的,将该更新后的会话信息发送至备用服务器,以实现该更新的会话信息的即时同步。若该会话状态更新的会话信息对应的会话创建时间在当前最新会话信息的会话创建时间之前,则说明该会话状态更新的会话信息已经在全量同步的过程中同步至备用服务器,则不需要将更新后的会话信息发送至备用服务器。
需要说明的是,步骤502和步骤503为两个独立的步骤,此处不对步骤 502和步骤503的执行顺序进行任何限定。
本实施例提供的信息同步的方法,以同步会话信息链表中当前最新会话信息的会话创建时间为分界点,在该当前最新会话信息的会话创建时间之前创建的会话信息,采用全量同步的方式同步至备用服务器;在该当前最新会话信息的会话创建时间之后新建、删除或更新的会话信息,采用即时同步的方式同步至备用服务器。避免了针对于同一会话信息,重复进行全量同步和即时同步两次同步。
为了提高全量同步的效率,在本申请实施例一些可能的实现方式中,主服务器可以包括至少一个转发处理器以及至少一个非转发处理器,主服务器中转发处理器、非转发处理器以及同步会话信息链表之间具有一一对应关系。如图6所示,为主服务器中包括有多个转发处理器以及多个非转发处理器的结构示意图,其中,转发处理器1、非转发处理器1以及同步会话信息链表1 三者相对应,转发处理器2、非转发处理器2以及同步会话信息链表2三者相对应,以此类推。
需要说明的是,同步会话信息链表可以被设计无锁双向链表。一方面,同步会话信息链表仅可以被与之对应的转发处理器进行写操作,例如仅转发处理器1可以对同步会话信息链表1进行写操作,主服务器中的其他转发处理器均不能对同步会话信息链表1进行写操作,这样,在主服务器中各个转发处理器对同步会话信息链表进行操作时,同步会话信息链表无需进行任何加锁保护。基于同步会话信息链表的该特点,随着主服务器中转发处理器数量的增加,主服务器的操作性能可以随之线性增加。
另一方面,同步会话信息链表被设计为双向链表,在转发处理器并发工作的情况下,可以在不加锁的条件下允许同步会话信息链表对应的非转发处理器逆向读取该同步会话信息链表。即在转发处理器对某一同步会话信息链表进行新建、删除等写操作的同时,还可以允许非转发处理器读取该同步会话信息链表,即非转发处理器对同步会话信息链表的读操作与转发处理器对同步会话信息链表的写操作并发安全。具体的,当转发处理器读同步会话信息链表时,此时如果对应的非转发处理器读同一同步会话信息链表时,没有任何问题;当转发处理器向同步会话信息链表的表头添加会话信息时,此时如果对应的非转发处理器读同一同步会话信息链表时,没有任何安全问题;当转发处理器删除同步会话信息链表的会话信息时,此时如果对应的非转发处理器读同一同步会话信息链表时,没有任何问题。因此,随着主服务器中转发处理器数量的增加,主服务器的操作性能可以随之线性增加。
例如,同步会话信息链表1与转发处理器1具有对应的关系,即仅该转发处理器1能够对同步会话信息链表1进行写操作,而该主服务器中的其他转发处理器无法对该同步会话信息链表进行任何写操作。在转发处理器1向同步会话信息链表1中读取或写入时,同时非转发处理器1读取该同步会话信息链表1时,不会出现任何并发问题。
如图6所示,在本申请实施例一些可能的实现方式中,非转发处理器读取同步会话信息链表,获得同步会话信息链表中当前最新会话信息以及当前最新会话信息之前的全部会话信息作为全量同步信息的实现可以为:非转发处理器起动同步线程,同步线程在同步会话信息链表中从当前最新会话信息开始向前读取,获得该同步会话信息链表中当前最新会话信息以及当前最新会话信息之前的全部会话信息作为全量同步信息。
转发处理器一般在初始化的过程中,会建立一个与之对应的同步线程,该同步线程运行在于该转发处理器对应的非转发处理器上,在需要进行全量同步时,非转发处理器会起动同步线程,由该同步线程读取与之对应的转发处理器上的同步会话信息链表,具体读取时,一般从当前最新会话信息开始向前读取,读取同步会话信息链表中当前最新会话信息以及当前最新会话信息之前的全部会话信息作为需要全量同步的会话信息。
非转发处理器将全量同步信息发送给备用服务器的过程中,可以建立与网卡之间的第一发送队列,该网卡是与备用服务器具有连接关系的。
通过该第一发送队列,将全量同步信息发送至备用服务器。
在一些可能的实现方式中,可以通过同步线程建立与网卡之间的第一发送队列,所述网卡与所述备用服务器相连;通过该第一发送队列,将全量同步信息发送至备用服务器。
非转发处理器进行全量同步时,会在自身运行的同步线程与网卡之间建立第一发送队列,通过该第一发送队列将需要全量同步的会话信息发送至网卡,基于网卡与备用服务器之间的连接关系,进而将需要全量同步的会话信息发送至备用服务器。
如图6所示,转发处理器1需要进行全量同步时,非转发处理器1会启动自身运行的同步线程1,同步线程1读取转发处理器1中的同步会话信息链表,具体的,从同步会话信息链表中当前最新会话信息开始向前读取,将该当前最新会话信息之前的全部会话信息作为全量同步信息。同步线程1读取需要全量同步的会话信息,并通过该同步线程1与网卡之间的第一发送队列,发送上述需要全量同步的会话信息,进而,便于网卡将需要全量同步的会话信息发送至备用服务器中。同理,主服务器中的其他转发处理器也可以按照上述流程,将需要全量同步的会话信息发送至备用服务器上。
需要说明的是,上述第一发送队列的长度可以是第二发送队列的长度的 n倍,该第二发送队列为转发处理器与网卡之间的信息发送队列,n为大于或等于1的整数。
现有技术中,仅通过在转发处理器与网卡之间建立的第二发送队列,实现转发处理器进行会话信息的即时同步。由于该第二发送队列的队列长度较短,当存在大批量需要进行同步的会话信息时,会因需要同步的会话信息过多,而造成网卡拥堵的情况。
为了解决上述技术问题,本申请实施例可以根据实际情况,设置第一发送队列的长度为上述第二发送队列的长度的n倍,一般为了防止出现因需要同步的会话信息过多而造成网卡拥堵的情况,设置n为大于1的整数。这样,由于同时增加了第一发送队列的长度,当各非转发处理器发送需要全量同步的会话信息时,出现网卡拥堵的情况的几率会大大减少。
例如,在实际应用中可以通过同步线程建立第一发送队列,可以设置各非转发处理器中同步线程与网卡之间的第一发送队列的长度为第二发送队列长度的4倍。同步线程封装需要全量同步的会话信息时,采用批量发送的原则,即将多个需要全量同步的会话信息封装为一个报文,在发送时一个同步线程一次最多可以发送128个报文,当然,若一次需要发送的报文数达不到 128,也会在遍历结束后将其发送至网卡,不会出现因达不到128个报文而一直不发送的问题。由于第一发送队列的个数与同步线程的个数相同均为n,与第二发送队列的个数相比增加了(n-1)个,且第一发送队列的长度也相对于第二发送队列增加了3倍,若假设第二发送队列的的长度为1024,因此,总的来说,第一发送队列相对于第二发送队列增加了3*(n-1)*1024个,基本不可能出现因与网卡连接的队列拥堵而导致同步会话信息失败的问题。
此外,第一发送队列在全量同步的过程中被使用,在没有需要进行全量同步的会话信息时,会话信息缓可以存在该第一发送队列中,即在不进行全量同步时,需要进行全量同步的会话信息也不会耗费其他资源。
具体实现时,第一发送队列的长度可以根据实际情况进行设置,即可以根据服务器的配置及性能等参数,设置该第一发送队列的长度,该服务器支持的同步性能越强,相应的,第一发送队列的长度越长,保证进行全量同步的过程中不丢包,网卡不发生拥堵。
本实施例提供的方法,由于在非转发处理器上增设了同步线程,且增加了同步线程与网卡之间的第一发送队列的长度,因此,在进行全量同步的过程中,可以一次性同步大量会话信息,不会因需要同步的会话信息过多而造成网卡拥堵。
参见图7,为本实施例提供的一种主服务器,主服务器包括转发处理器以及非转发处理器;
转发处理器包括:
更新单元701,用于更新同步会话信息链表,同步会话信息链表中包括按照会话创建时间排序的会话信息;
确定单元702,用于响应于全量同步的触发信息,确定同步会话信息链表中的当前最新会话信息;
非转发处理器包括:
读取单元703,用于读取同步会话信息链表,获得同步会话信息链表中当前最新会话信息以及当前最新会话信息之前的全部会话信息作为全量同步信息;
第一发送单元704,用于将全量同步信息发送给备用服务器。
可选的,转发处理器还包括:
记录单元,用于记录当前最新会话信息的会话创建时间;
第二发送单元,用于将在当前最新会话信息的会话创建时间之后新建的会话信息发送给备用服务器,并通知备用服务器删除在当前最新会话信息的会话创建时间之后删除的会话信息;
判断单元,用于当会话状态更新时,判断会话状态更新的会话信息对应的会话创建时间是否在当前最新会话信息的会话创建时间之后;
第三发送单元,用于如果判断单元的判断结果为是,将更新后的会话信息发送给备用服务器,如果判断单元的判断结果为否,更新后的会话信息不发送给备用服务器。
可选的,第一发送单元704包括:
建立子单元,用于建立与网卡之间的第一发送队列,网卡与备用服务器相连;第一发送队列的长度是第二发送队列的长度的n倍,第二发送队列为转发处理器与网卡之间的信息发送队列,n为大于或等于1的整数;
发送子单元,用于通过第一发送队列将全量同步信息发送给备用服务器。
可选的,主服务器包括至少一个转发处理器以及至少一个非转发处理器,转发处理器、非转发处理器以及同步会话信息链表之间具有一一对应关系。
本实施例提供的主服务器,通过转发处理器更新包括会话信息的同步会话信息链表,在需要进行全量同步时,在该同步会话信息链表中确定最新的一条会话信息,通过非转发处理器读取同步会话信息链表中最新会话信息,以及最新会话信息前全部的会话信息作为全量同步信息,进行会话信息同步。从而实现了主服务器和备用服务器之间会话信息的全量同步,并且由非转发处理器读取并发送全量同步信息,不会影响转发处理器正常转发功能的实现,保证该防火墙设备既能正常运行,又能够实现全量同步。
本申请实施例还提供一种计算机可读存储介质,机算机可读存储介质中存储有指令,当指令在终端设备上运行时,使得终端设备执行上述信息同步方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品在终端设备上运行时,使得终端设备执行上述信息同步方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请实施例。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请实施例的精神或范围的情况下,在其它实施例中实现。因此,本申请实施例将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种信息同步方法,其特征在于,所述方法应用于主服务器,所述主服务器包括转发处理器以及非转发处理器,所述转发处理器更新同步会话信息链表,所述同步会话信息链表中包括按照会话创建时间排序的会话信息;所述方法包括:
响应于全量同步的触发信息,所述转发处理器确定所述同步会话信息链表中的当前最新会话信息;
所述非转发处理器读取所述同步会话信息链表,获得所述同步会话信息链表中所述当前最新会话信息以及所述当前最新会话信息之前的全部会话信息作为全量同步信息;
所述非转发处理器将所述全量同步信息发送给备用服务器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述转发处理器记录所述当前最新会话信息的会话创建时间;
所述转发处理器将在所述当前最新会话信息的会话创建时间之后新建的会话信息发送给所述备用服务器,并通知所述备用服务器删除在当前最新会话信息的会话创建时间之后删除的会话信息;
当会话状态更新时,所述转发处理器判断会话状态更新的会话信息对应的会话创建时间是否在所述当前最新会话信息的会话创建时间之后,如果是,将更新后的会话信息发送给所述备用服务器,如果否,更新后的会话信息不发送给所述备用服务器。
3.根据权利要求1所述的方法,其特征在于,所述非转发处理器将所述全量同步信息发送给备用服务器,包括:
所述非转发处理器建立与网卡之间的第一发送队列,所述网卡与所述备用服务器相连;所述第一发送队列的长度是第二发送队列的长度的n倍,所述第二发送队列为所述转发处理器与所述网卡之间的信息发送队列,n为大于或等于1的整数;
所述非转发处理器通过所述第一发送队列将所述全量同步信息发送给备用服务器。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述主服务器包括至少一个转发处理器以及至少一个非转发处理器,所述转发处理器、所述非转发处理器以及所述同步会话信息链表之间具有一一对应关系。
5.一种主服务器,其特征在于,所述主服务器包括转发处理器以及非转发处理器;
所述转发处理器包括:
更新单元,用于更新同步会话信息链表,所述同步会话信息链表中包括按照会话创建时间排序的会话信息;
确定单元,用于响应于全量同步的触发信息,确定所述同步会话信息链表中的当前最新会话信息;
所述非转发处理器包括:
读取单元,用于读取所述同步会话信息链表,获得所述同步会话信息链表中所述当前最新会话信息以及所述当前最新会话信息之前的全部会话信息作为全量同步信息;
第一发送单元,用于将所述全量同步信息发送给备用服务器。
6.根据权利要求5所述的主服务器,其特征在于,所述转发处理器还包括:
记录单元,用于记录所述当前最新会话信息的会话创建时间;
第二发送单元,用于将在所述当前最新会话信息的会话创建时间之后新建的会话信息发送给所述备用服务器,并通知所述备用服务器删除在当前最新会话信息的会话创建时间之后删除的会话信息;
判断单元,用于当会话状态更新时,判断会话状态更新的会话信息对应的会话创建时间是否在所述当前最新会话信息的会话创建时间之后;
第三发送单元,用于如果所述判断单元的判断结果为是,将更新后的会话信息发送给所述备用服务器,如果所述判断单元的判断结果为否,更新后的会话信息不发送给所述备用服务器。
7.根据权利要求5所述的主服务器,其特征在于,所述第一发送单元包括:
建立子单元,用于建立与网卡之间的第一发送队列,所述网卡与所述备用服务器相连;所述第一发送队列的长度是第二发送队列的长度的n倍,所述第二发送队列为所述转发处理器与所述网卡之间的信息发送队列,n为大于或等于1的整数;
发送子单元,用于利用所述同步线程通过所述第一发送队列将所述全量同步信息发送给备用服务器。
8.根据权利要求5-7任一项所述的主服务器,其特征在于,所述主服务器包括至少一个转发处理器以及至少一个非转发处理器,所述转发处理器、所述非转发处理器以及所述同步会话信息链表之间具有一一对应关系。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-4任一项所述的信息同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711367354.XA CN107846476B (zh) | 2017-12-18 | 2017-12-18 | 一种信息同步方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711367354.XA CN107846476B (zh) | 2017-12-18 | 2017-12-18 | 一种信息同步方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107846476A CN107846476A (zh) | 2018-03-27 |
CN107846476B true CN107846476B (zh) | 2020-06-16 |
Family
ID=61664142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711367354.XA Active CN107846476B (zh) | 2017-12-18 | 2017-12-18 | 一种信息同步方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107846476B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110198335A (zh) * | 2018-08-30 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 消息同步方法及装置、电子设备及存储介质 |
CN115037758A (zh) * | 2022-04-27 | 2022-09-09 | 浪潮通信技术有限公司 | 消息同步方法及服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004023233A2 (en) * | 2002-09-03 | 2004-03-18 | Nokia Corporation | Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process |
CN1527523A (zh) * | 2003-09-19 | 2004-09-08 | 中兴通讯股份有限公司 | 一种会话数据操作和维护的实现方法 |
CN102263661A (zh) * | 2011-07-21 | 2011-11-30 | 苏州阔地网络科技有限公司 | 一种用户会话的备份切换方法及系统 |
CN105591810A (zh) * | 2015-10-22 | 2016-05-18 | 杭州华三通信技术有限公司 | 备份消息发送方法和设备 |
CN106254100A (zh) * | 2016-07-27 | 2016-12-21 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置和系统 |
-
2017
- 2017-12-18 CN CN201711367354.XA patent/CN107846476B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004023233A2 (en) * | 2002-09-03 | 2004-03-18 | Nokia Corporation | Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process |
CN1527523A (zh) * | 2003-09-19 | 2004-09-08 | 中兴通讯股份有限公司 | 一种会话数据操作和维护的实现方法 |
CN102263661A (zh) * | 2011-07-21 | 2011-11-30 | 苏州阔地网络科技有限公司 | 一种用户会话的备份切换方法及系统 |
CN105591810A (zh) * | 2015-10-22 | 2016-05-18 | 杭州华三通信技术有限公司 | 备份消息发送方法和设备 |
CN106254100A (zh) * | 2016-07-27 | 2016-12-21 | 腾讯科技(深圳)有限公司 | 一种数据容灾方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107846476A (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11172023B2 (en) | Data synchronization method and system | |
US10298436B2 (en) | Arbitration processing method after cluster brain split, quorum storage apparatus, and system | |
JP6749926B2 (ja) | データを同期する方法、機器、及びシステム | |
US9401958B2 (en) | Method, apparatus, and system for migrating user service | |
CN108200219B (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN112367149B (zh) | 消息获取方法、装置、设备及存储介质 | |
CN109361525B (zh) | 重启分布式部署多服务的方法、装置、控制终端及介质 | |
CN110633168A (zh) | 一种分布式存储系统的数据备份方法和系统 | |
US20180013610A1 (en) | File delivery method, apparatus and system | |
CN107688489B (zh) | 一种调度任务的方法和系统 | |
CN107846476B (zh) | 一种信息同步方法、设备及存储介质 | |
JP6405255B2 (ja) | 通信システム、キュー管理サーバ、及び、通信方法 | |
CN110971702A (zh) | 服务调用方法、装置、计算机设备及存储介质 | |
CN111259074A (zh) | 区块同步方法、设备和存储介质 | |
JP6115396B2 (ja) | 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法 | |
CN112328693A (zh) | 区块同步方法、设备和存储介质 | |
WO2024036990A1 (zh) | 数据恢复的方法、装置、网络设备及存储介质 | |
JP5544521B2 (ja) | 状態管理方法、処理装置、および状態管理プログラム | |
WO2017071430A1 (zh) | 处理报文的方法、网卡及系统、更新信息的方法及主机 | |
WO2017036238A1 (zh) | 一种业务节点的调整方法、装置及设备 | |
CN112995053A (zh) | 发送报文的方法及装置 | |
CN109413118B (zh) | 一种实现会话同步的方法、装置及存储介质、程序产品 | |
CN106209666B (zh) | 一种基于负载均衡器的链路复用方法及系统 | |
CN104468767A (zh) | 一种云存储数据冲突检测方法及系统 | |
JP2015526802A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |