CN106953761B - 服务器备灾系统及基于备灾系统的处理消息的方法 - Google Patents
服务器备灾系统及基于备灾系统的处理消息的方法 Download PDFInfo
- Publication number
- CN106953761B CN106953761B CN201710198417.7A CN201710198417A CN106953761B CN 106953761 B CN106953761 B CN 106953761B CN 201710198417 A CN201710198417 A CN 201710198417A CN 106953761 B CN106953761 B CN 106953761B
- Authority
- CN
- China
- Prior art keywords
- server
- message
- current
- queue
- standby
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- 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)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及服务器备灾系统及基于备灾系统的处理消息的方法,系统包括第一服务器、第二服务器、以及仲裁机,所述第一服务器和所述第二服务器部署在同一网段以收发同一组播;所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播,以维护数据的一致性;所述仲裁机用于为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器,并在判断当前主服务器宕机之后控制主备切换。本申请的技术方案通过对消息进行未决、已决分类维护数据的一致性,能够提高消息处理的速度。
Description
技术领域
本申请涉及消息处理技术领域,具体而言,涉及服务器备灾系统及基于备灾系统的处理消息的方法。
背景技术
在速度和可靠性都有很高要求的消息处理技术领域,目前已经演化出很多高效的技术手段,比如基于UDP广播或组播的通信协议(可靠组播),消息补发机制,主备部署等等,可以在保证高可靠性的同时达到很高的消息处理速度。但是由于消息的有状态特性,可靠性的要求对消息处理的性能还存在一些约束。
相关技术中,为了使消息处理服务器达到高可靠性的要求,在面对服务器宕机时,要求消息处理不重不漏,相关技术一般是部署主备两台物理服务器,有的还外加一台仲裁服务器,并要求在主备服务器之间进行频繁严格的数据同步,保证主备机拥有相同的数据备份。为了同步消息数据和消息处理的状态,每个进入系统的消息,都需要在主备服务器之间转发一遍,相互确认。
上述相关技术为了同步消息数据和消息处理的状态,以致于每个进入服务器的消息,都要在主备服务器之间转发一遍,会造成消息处理的速度下降。而且,因为主备消息同步通信的设计,在备机宕机的情况下,原本完好的主机,也会因为收不到备机对消息同步请求的响应而暂停服务,直到仲裁服务器确认备机宕机后,才能恢复工作。另外,上述相关技术虽然对请求消息进行了主备同步,但是往往忽略了对响应消息进行同步,在主服务器宕机后不能准确判定响应消息的处理状态,往往导致重发或者漏发响应消息。
发明内容
本申请公开服务器备灾系统及基于备灾系统的处理消息的方法,使得消息处理的速度提高。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一个方面,提供一种服务器备灾系统,包括:
第一服务器、第二服务器、以及仲裁机,所述第一服务器和所述第二服务器部署在同一网段以收发同一组播;
所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播,以维护数据的一致性;
所述仲裁机用于为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器,并在判断当前主服务器宕机之后控制主备切换。
根据一些实施例,所述第一服务器和所述第二服务器维护数据的一致性包括:
所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播以及外部服务器发送的用于确收消息的回报消息组播,并根据所接收的所述请求消息、以及所述回报消息分别各自维护三个队列;
当所述第一服务器为主服务器角色而所述第二服务器为备服务器角色时,所述第一服务器通过第一队列记录接收但未发送的消息、通过第二队列记录已发送但未确收的消息、以及通过第三队列用于记录已确收的消息,所述第二服务器通过第五队列记录接收但未确收的消息、以及通过第六队列记录已确收的消息;
当所述第二服务器为主服务器角色而所述第一服务器为备服务器角色时,所述第二服务器通过第四队列记录接收但未发送的消息、通过第五队列记录已发送但未确收的消息、以及通过第六队列用于记录已确收的消息,所述第一服务器通过第二队列记录接收但未确收的消息、以及通过第三队列记录已确收的消息。
根据一些实施例,所述仲裁机用于:
当判断当前备服务器宕机,对当前主服务器不作处理;以及
所述仲裁机若判断所述当前主服务器宕机之后,则控制所述当前主服务器与所述当前备服务器交换主备角色进行主备切换。
根据一些实施例,所述仲裁机用于通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机。
根据一些实施例,所述仲裁机用于通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机包括:当连续N次未收到所述当前主服务器心跳,则判定所述当前主服务器宕机,当连续M次未收到所述当前备服务器心跳,则判定所述当前备服务器宕机,其中N、M为自然数。
根据一些实施例,所述当前主服务器还用于在接收到回报消息之后,发送响应消息组播;
所述当前备服务器还用于监听所述响应消息组播,根据所述响应消息组播确定消息是否确收。
根据一些实施例,所述仲裁机用于为所述第一服务器和所述第二服务器分配角色包括:所述仲裁机用于为所述第一服务器与所述第二服务器中先启动者分配主服务器角色。
根据一些实施例,所述方法还包括在主备切换之后,所述当前主服务器还用于依次将用于记录已发送但未确收的消息的队列中的消息发送给所述外部服务器。
根据本发明的另一方面,提供一种基于备灾系统的处理消息的方法,所述备灾系统包括第一服务器、第二服务器、以及仲裁机,所述第一服务器和所述第二服务器部署在同一网段以收发同一组播;
所述第一服务器和所述第二服务器通过同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播维护数据的一致性;
所述仲裁机为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器,并在判断当前主服务器宕机之后控制主备切换。
根据一些实施例,所述第一服务器和所述第二服务器维护数据的一致性包括:
所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播,并根据所接收的所述请求消息、以及所述回报消息分别各自维护预定的未报队列、未决队列、已决队列;
在所述仲裁机为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器之后,所述当前主服务器依次从第一未报队列中取出所述请求消息发送到外部服务器,并将所取出的所述请求消息记录在第一未决队列中,当监听到请求消息组播时,将所述请求消息记录在所述第一未报队列中,当接收到回报消息组播,将所述回服消息组播对应的消息从所述第一未决队列中取出之后存放到第一已决队列中,当接收到最终消息回报,将所述请求消息从所述第一已决队列中清空;
当所述当前备服务器监听到请求消息组播时,将所述请求消息记录在第二未决队列中,当接收到回报消息组播,将所述回服消息组播对应的消息从所述第二未决队列中取出之后存放到第二已决队列中,当接收到最终消息回报,将所述第二已决队列清空;
所述仲裁机判断当前主服务器宕机之后控制主备切换包括:所述仲裁机监控所述当前主服务器是否宕机,若是则发送主备切换控制指令,所述备服务器依次将所述第二未决队列中的消息发送给所述外部服务器,所述当前主服务器和所述当前备服务器交换角色。
根据一些实施例,所述方法还包括所述仲裁机监控所述当前备服务器是否宕机,若是则对所述当前主服务器不作处理。
根据一些实施例,所述仲裁机监控所述当前备服务器宕机或所述当前主服务器是否宕机包括:所述仲裁机通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机。
根据一些实施例,所述仲裁机通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机包括:当连续N次未收到所述当前主服务器心跳,则判定所述当前主服务器宕机,当连续M次未收到所述当前备服务器心跳,则判定所述当前备服务器宕机,其中N、M为自然数。
根据一些实施例,所述当前主服务器还用于在接收到回报消息之后,发送响应消息组播。
根据一些实施例,所述方法还包括,所述当前备服务器根据所述当前主服务器发送的响应消息组播确定消息是否确收。
根据一些实施例,所述仲裁机为所述第一服务器和所述第二服务器分配角色包括:系统启动时,所述仲裁机将所述第一服务器与所述第二服务器中先启动者确定为主服务器,后启动者确定为备服务器。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例提供的技术方案通过对消息进行未决、已决分类维护数据的一致性,能够提高消息处理的速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明一实施例的务务器备灾系统部署示意图;
图2示出了根据本发明一实施例的请求消息组播结构示意图;
图3示出了根据本发明一实施例的响应消息组播结构示意图;
图4示出了根据本发明一实施例的第一、第二服务器内部三个队列维护示意图;
图5示出了根据本发明另一实施例的基于备灾系统的处理消息的方法;
图6示出了根据本发明另一实施例的主服务器宕机处理方法流程示意图;
图7示出了根据本发明另一实施例的备服务器宕机处理方法流程示意图;
图8示出了根据本发明另一实施例的服务器恢复流程示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了根据本发明一实施例的务务器备灾系统部署示意图,根据本发明一实施例的服务器备灾系统,本实施例可适用于通过主备两个服务器进行消息安全处理的情况,如图1所示,本实施例所述的服务器备灾系统包括:
第一服务器、第二服务器、以及仲裁机,所述第一服务器和所述第二服务器部署在同一网段以收发同一组播;
所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播,以维护数据的一致性;
所述仲裁机用于为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器,并在判断当前主服务器宕机之后控制主备切换。
可见,本实施例所述的服务器备灾系统,通过双服务器部署,一主一备。主服务器宕机后,备服务器自动接管。冷备仲裁机,监控主备服务器状态、分配服务器角色和控制主备切换。主备服务器同一网段部署,中间不跨交换机,保证能收发同一组播,主备服务器与外部服务器的可靠通信连接。该部署结构至少具有以下优点:首先,通主备服务器同时监听请求消息组播,能保证请求消息可靠有序的分发到每个服务器;其次,主备服务器同时与外部服务器建立连接,外部服务器保证其回报消息分发到每个连接;另外,主备服务器之间没有直接的数据同步通信,备服务器能够通过监听响应消息组播获取主服务器的响应消息。
本实施例的请求消息组播结构示意图如图2所示,主备服务器同时监听请求消息组播,保证获取到同样的待处理消息。本实施例的响应消息组播结构示意图如图3所示,消息处理终端和备服务器同时监听响应消息组播,保证获取到同样的响应消息。
例如,所述第一服务器和所述第二服务器维护数据的一致性可通过如下方法实现:
所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播以及外部服务器发送的用于确收消息的回报消息组播,并根据所接收的所述请求消息、以及所述回报消息分别各自维护三个队列;
当所述第一服务器为主服务器角色而所述第二服务器为备服务器角色时,所述第一服务器通过第一队列记录接收但未发送的消息、通过第二队列记录已发送但未确收的消息、以及通过第三队列用于记录已确收的消息,所述第二服务器通过第五队列记录接收但未确收的消息、以及通过第六队列记录已确收的消息;
当所述第二服务器为主服务器角色而所述第一服务器为备服务器角色时,所述第二服务器通过第四队列记录接收但未发送的消息、通过第五队列记录已发送但未确收的消息、以及通过第六队列用于记录已确收的消息,所述第一服务器通过第二队列记录接收但未确收的消息、以及通过第三队列记录已确收的消息。
若将记录接收但未发送的消息的队列称为未报队列、将记录已发送但未确收的消息的队列称为未决队列、以及将记录已确收的消息的队列称为已决队列,则根据本发明一实施例的第一服务器、以及第二服务器内部三个队列维护示意图如图4所示。第一服务器与第二服务器的内部结构是相同的,根据主备模式不同启用不同的部分,运行不同的逻辑。
主服务器收到的消息首先进入未报队列,报送后进入未决队列,因为还未确认该消息是否发送到外部服务器,一直到收到外部服务器发送的消息回报,才确认消息已报送,进入已决队列。
备服务器收到的消息直接进入未决队列,因为不知道主服务器是否已经报送该消息,一直到收到外部服务器或者主服务器发送的消息回报,才确认消息已报送,进入已决队列。
主备服务器收到最终消息回报,消息处理流程结束,从已决队列中删除该消息,消息处理完成。
例如,所述仲裁机可具体用于:当判断当前备服务器宕机,对当前主服务器不作处理;以及所述仲裁机若判断所述当前主服务器宕机之后,则控制所述当前主服务器与所述当前备服务器交换主备角色进行主备切换。
其中判断服务器宕机的方法包括多种,例如,可以通过心跳信道监控服务器是否宕机。如:当连续N次未收到所述当前主服务器心跳,则判定所述当前主服务器宕机,当连续M次未收到所述当前备服务器心跳,则判定所述当前备服务器宕机,其中N、M为自然数,原则上N应该不大于M,M、N也可以相同。又如,还可以通过硬件检测与心跳检测结合监控服务器是否宕机。再如,还可以通过仲裁机加未宕机服务器双重确认法监控服务器是否宕机,如在仲载机判断主服务器疑似宕机之后,命令完好的备服务器尝试联络所述主服务器,若所述备服务器联络所述主服务器失败,判定所述主服务器宕机。
例如,根据本发明的一些实施例,可通过以下仲裁机制进行仲裁:
(1)仲裁机通过心跳信道监控主备服务器的状态;
(2)仲裁机判断备服务器宕机后,主服务器不受影响,不作任何处理;
(3)仲裁机判断主服务器宕机后,通知备服务器切换为主服务器后继续工作;
(4)主备服务器同时接收终端通过可靠组播发送的消息,但是备服务器不报送消息;
(5)主备服务器同时接收外部服务器的可靠回报,但是备服务器不发送回报;
(6)备服务器接收主服务器通过可靠组播发回终端的回报;
(7)备服务器通过接收的终端消息、外部服务器回报、主服务器回报,维持数据同步。
通过该仲裁机制,主服务器负责消息报送,处理外部服务器回报并发送回报给终端;备服务器通过接收消息、外部服务器回报和主服务器回报,同步数据;主服务器宕机后,备服务器切换为主服务器,先处理未决消息,再正常工作;未决消息通过查询外部服务器判定,未发送则补发送。
根据本发明的一些实施例,所述仲裁机可用于为所述第一服务器与所述第二服务器分配主备服务器角色。其中分配角色时可参考启动顺序、硬件配置、IP大小、机器性能等信息。例如将所述第一服务器与所述第二服务器中先启动者分配主服务器角色。
所述方法还包括在主备切换之后,所述当前主服务器还用于依次将用于记录已发送但未确收的消息的队列中的消息发送给所述外部服务器。
根据本发明的一些实施例,所述当前主服务器还用于在接收到回报消息之后,发送响应消息组播。所述当前备服务器还用于监听所述响应消息组播,根据所述响应消息组播确定消息是否确收。
本实施例所述的服务器备灾系统包括第一服务器、第二服务器、以及仲裁机,所述第一服务器和所述第二服务器部署在同一网段以收发同一组播,通过同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播,以维护数据的一致性,并在当前主服务器宕机之后控制主备切换。能够提高消息处理的速度。
图5示出了根据本发明另一实施例的基于备灾系统的处理消息的方法,该方法基于上述服务器备灾系统。所述备灾系统包括第一服务器、第二服务器、以及仲裁机,所述第一服务器和所述第二服务器部署在同一网段以收发同一组播。如图5所示,本实施例所述的基于备灾系统的处理消息的方法包括:
所述第一服务器和所述第二服务器通过同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播维护数据的一致性;
所述仲裁机为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器,并在判断当前主服务器宕机之后控制主备切换。
本领域的普通技术人员通过图5可知:主备服务器同时接收终端组播出来的待处理请求消息;主服务器负责报送请求消息和发送响应消息;主备服务器同时接收外部服务器回报,各自更新消息状态;主备服务器同时接收外部服务器最终回报,各自删除消息。
图6示出了根据本发明另一实施例的主服务器宕机处理方法流程示意图,通过图6可知:备服务器处理的一切,就是为了准备主服务器宕机时的无缝切换;备服务器切换后,收到的消息进入未报队列,因为可以确定消息未报(主服务器已宕);备服务器切换的主要工作,就是处理未决消息,即不知道主服务是否报送、是否报送成功的消息,通过查询外部服务器消息是否报送的方法完成判决;未决消息处理完成后,备服务器即可启动主服务器模式组件,切换为主服务器处理逻辑。
图7示出了根据本发明另一实施例的备服务器宕机处理方法流程示意图,通过图7可知:备服务器宕机对整个消息处理系统没有影响,主服务器正常处理消息。
图8示出了根据本发明另一实施例的服务器恢复流程示意图,通过图8可知:宕机服务器作为备服务器启动;备服务器启动后,通过监听终端的请求消息组播、外部服务器的回报消息、主服务器的响应消息组播,同步消息数据和消息处理状态,为下次主服务宕机做准备。
例如,所述第一服务器和所述第二服务器维护数据的一致性可通过如下方法实现:
所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播,并根据所接收的所述请求消息、以及所述回报消息分别各自维护预定的未报队列、未决队列、已决队列;
在所述仲裁机为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器之后,所述当前主服务器依次从第一未报队列中取出所述请求消息发送到外部服务器,并将所取出的所述请求消息记录在第一未决队列中,当监听到请求消息组播时,将所述请求消息记录在所述第一未报队列中,当接收到回报消息组播,将所述回服消息组播对应的消息从所述第一未决队列中取出之后存放到第一已决队列中,当接收到最终消息回报,将所述请求消息从所述第一已决队列中清空;
当所述当前备服务器监听到请求消息组播时,将所述请求消息记录在第二未决队列中,当接收到回报消息组播,将所述回服消息组播对应的消息从所述第二未决队列中取出之后存放到第二已决队列中,当接收到最终消息回报,将所述第二已决队列清空;
例如,所述仲裁机判断当前主服务器宕机之后控制主备切换可通过如下方法实现:所述仲裁机监控所述当前主服务器是否宕机,若是则发送主备切换控制指令,所述备服务器依次将所述第二未决队列中的消息发送给所述外部服务器,所述当前主服务器和所述当前备服务器交换角色。
另外,所述仲裁机还可监控所述当前备服务器是否宕机,若是则对所述当前主服务器不作处理。具体地,可具体通过如下方法:所述仲裁机通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机。例如,当连续N次未收到所述当前主服务器心跳,则判定所述当前主服务器宕机,当连续M次未收到所述当前备服务器心跳,则判定所述当前备服务器宕机,其中N、M为自然数。
所述当前主服务器还可用于在接收到回报消息之后,发送响应消息组播。所述当前备服务器可根据所述当前主服务器发送的响应消息组播确定消息是否确收。
系统启动时,所述仲裁机为所述第一服务器与所述第二服务器分配主备服务器角色。其中分配角色时可参考启动顺序、硬件配置、IP大小、机器性能等信息。例如所述仲裁机将所述第一服务器与所述第二服务器中先启动者确定为主服务器,后启动者确定为备服务器。
综上,本实施例最大特点是主备消息处理服务器之间没有直接的消息同步通信,互相不知道对方的存在主服务器甚至不知道备服务器的存在,相应的,消息处理服务器就没有单机模式,只有主备模式。主消息处理服务器可以全速的处理消息,完全不必考虑备服务器的存在。备服务器的工作就是同步数据。
与现有技术相比,备服务器不用从主服务器获取并同步数据,而是改用黑箱法则,把主服务器看成一个不透明的黑箱,纯粹从消息处理服务器系统的外部接口观察输入输出,利用可靠组播和外部服务器数据流的分发和恢复机制,达到同步数据的目的。
相比现有的相关技术,本实施例具有如下特点:
首先,相关技术为了同步消息数据和消息处理的状态,每个进入服务器的消息,都要在主备服务器之间转发一遍,相互确认,这样会造成消息处理的速度下降。
本实施例的技术在此基础上,设计了新的数据同步方案,取消了主备之间的同步通信,在保证可靠性的同时,提高了消息处理的速度。现有技术用降低速度的代价维护主备数据时刻保持一致,本发明则为了最大化数据处理的速度,取消主备数据时刻保持一致的特性,改为采用对消息进行未决、已决分类的方法,维护数据的滞后一致性,即数据虽然不是时刻一致的,但延迟一小段时间后,最终会达到一致的状态。这样,就用主备切换时的一点点时间损耗,换来了日常消息处理速度的极大提升,是非常划算的时间再平衡,毕竟主备切换发生的概率还是非常小的。
其次,相关技术因为主备消息同步通信的设计,在备机宕机的情况下,原本完好的主机,也会因为收不到备机对消息同步请求的响应而暂停服务,一直到仲裁服务器确认备机宕机后,才能恢复。
本实施例的技术由于取消了主备之间的同步通信,除了能提高日常情况下的消息处理速度,也消除了备机宕机时对主机的影响,备机宕机时,主机完全不知道,可以一直正常处理消息。
另外,现有技术往往对请求消息进行了主备同步,但是忽略了对响应消息的同步,造成主服务器宕机后不能准确判定响应消息的处理状态,后果往往是重发或者漏发响应消息。
本实施例的技术由于备服务器通过可靠组播监听了主服务器的响应消息,获取了精确的响应消息处理状态,所以对响应消息的处理也可以做到不重不漏。现有技术,在主备切换发生时,往往会存在丢弃(一批)消息,或者重复处理(一批)消息的情况,而本发明由于完整的监控了主服务器的输入和输出数据,对每一条消息的数据和状态都可以精确的同步,所以对任何一条进入系统的消息,即使在主服务器宕机的情况下,其处理的对外表现,都可以做到不重不漏。
根据一些实施例,本发明还提供一种非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。当存储介质中的指令由终端的处理器执行时,使得终端能够执行下述方法:将脚本模块中的原生资源名称变换为原生资源ID;原生应用模块通过原生资源ID获取相应的原生资源。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上具体地示出和描述了本发明的示例性实施例。应该理解,本发明不限于所公开的实施例,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效布置。
Claims (15)
1.一种服务器备灾系统,其特征在于,包括第一服务器、第二服务器、以及仲裁机,所述第一服务器和所述第二服务器部署在同一网段以收发同一组播;
所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播,以维护数据的一致性,其中,所述第一服务器和所述第二服务器维护数据的一致性包括:所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播以及外部服务器发送的用于确收消息的回报消息组播,并根据所接收的所述请求消息、以及所述回报消息分别各自维护三个队列;当所述第一服务器为主服务器角色而所述第二服务器为备服务器角色时,所述第一服务器通过第一队列记录接收但未发送的消息、通过第二队列记录已发送但未确收的消息、以及通过第三队列用于记录已确收的消息,所述第二服务器通过第五队列记录接收但未确收的消息、以及通过第六队列记录已确收的消息;当所述第二服务器为主服务器角色而所述第一服务器为备服务器角色时,所述第二服务器通过第四队列记录接收但未发送的消息、通过第五队列记录已发送但未确收的消息、以及通过第六队列用于记录已确收的消息,所述第一服务器通过第二队列记录接收但未确收的消息、以及通过第三队列记录已确收的消息;
所述仲裁机用于为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器,并在判断当前主服务器宕机之后控制主备切换。
2.如权利要求1所述的服务器备灾系统,其特征在于,所述仲裁机用于:
当判断当前备服务器宕机,对当前主服务器不作处理;以及
所述仲裁机若判断所述当前主服务器宕机之后,则控制所述当前主服务器与所述当前备服务器交换主备角色进行主备切换。
3.如权利要求2所述的服务器备灾系统,其特征在于,所述仲裁机用于通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机。
4.如权利要求3所述的服务器备灾系统,其特征在于,所述仲裁机用于通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机包括:当连续N次未收到所述当前主服务器心跳,则判定所述当前主服务器宕机,当连续M次未收到所述当前备服务器心跳,则判定所述当前备服务器宕机,其中N、M为自然数。
5.如权利要求1所述的服务器备灾系统,其特征在于,所述当前主服务器还用于在接收到回报消息之后,发送响应消息组播;
所述当前备服务器还用于监听所述响应消息组播,根据所述响应消息组播确定消息是否确收。
6.如权利要求1所述的服务器备灾系统,其特征在于,所述仲裁机用于为所述第一服务器和所述第二服务器分配角色包括:所述仲裁机用于为所述第一服务器与所述第二服务器中先启动者分配主服务器角色。
7.如权利要求1所述的服务器备灾系统,其特征在于,所述系统还包括在主备切换之后,所述当前主服务器还用于依次将用于记录已发送但未确收的消息的队列中的消息发送给所述外部服务器。
8.一种基于备灾系统的处理消息的方法,其特征在于,所述备灾系统包括第一服务器、第二服务器、以及仲裁机,所述第一服务器和所述第二服务器部署在同一网段以收发同一组播;
所述第一服务器和所述第二服务器通过同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播维护数据的一致性,其中,所述第一服务器和所述第二服务器维护数据的一致性包括:所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播以及外部服务器发送的用于确收消息的回报消息组播,并根据所接收的所述请求消息、以及所述回报消息分别各自维护三个队列;当所述第一服务器为主服务器角色而所述第二服务器为备服务器角色时,所述第一服务器通过第一队列记录接收但未发送的消息、通过第二队列记录已发送但未确收的消息、以及通过第三队列用于记录已确收的消息,所述第二服务器通过第五队列记录接收但未确收的消息、以及通过第六队列记录已确收的消息;当所述第二服务器为主服务器角色而所述第一服务器为备服务器角色时,所述第二服务器通过第四队列记录接收但未发送的消息、通过第五队列记录已发送但未确收的消息、以及通过第六队列用于记录已确收的消息,所述第一服务器通过第二队列记录接收但未确收的消息、以及通过第三队列记录已确收的消息;
所述仲裁机为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器,并在判断当前主服务器宕机之后控制主备切换。
9.如权利要求8所述的方法,其特征在于,所述第一服务器和所述第二服务器维护数据的一致性包括:
所述第一服务器和所述第二服务器同时监听消息处理终端发送的请求消息组播、以及外部服务器发送的用于确收消息的回报消息组播,并根据所接收的所述请求消息、以及所述回报消息分别各自维护预定的未报队列、未决队列、已决队列;
在所述仲裁机为所述第一服务器和所述第二服务器分配角色确定当前主服务器和当前备服务器之后,所述当前主服务器依次从第一未报队列中取出所述请求消息发送到外部服务器,并将所取出的所述请求消息记录在第一未决队列中,当监听到请求消息组播时,将所述请求消息记录在所述第一未报队列中,当接收到回报消息组播,将所述回报消息组播对应的消息从所述第一未决队列中取出之后存放到第一已决队列中,当接收到最终消息回报,将所述请求消息从所述第一已决队列中清空;
当所述当前备服务器监听到请求消息组播时,将所述请求消息记录在第二未决队列中,当接收到回报消息组播,将所述回报消息组播对应的消息从所述第二未决队列中取出之后存放到第二已决队列中,当接收到最终消息回报,将所述第二已决队列清空;
所述仲裁机判断当前主服务器宕机之后控制主备切换包括:所述仲裁机监控所述当前主服务器是否宕机,若是则发送主备切换控制指令,所述备服务器依次将所述第二未决队列中的消息发送给所述外部服务器,所述当前主服务器和所述当前备服务器交换角色。
10.如权利要求9所述的方法,其特征在于,所述方法还包括所述仲裁机监控所述当前备服务器是否宕机,若是则对所述当前主服务器不作处理。
11.如权利要求10所述的方法,其特征在于,所述仲裁机监控所述当前备服务器宕机或所述当前主服务器是否宕机包括:所述仲裁机通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机。
12.如权利要求11所述的方法,其特征在于,所述仲裁机通过心跳信道监控所述当前所述主服务器和所述当前所述备服务器是否宕机包括:当连续N次未收到所述当前主服务器心跳,则判定所述当前主服务器宕机,当连续M 次未收到所述当前备服务器心跳,则判定所述当前备服务器宕机,其中N、M为自然数。
13.如权利要求10所述的方法,其特征在于,所述当前主服务器还用于在接收到回报消息之后,发送响应消息组播。
14.如权利要求13所述的方法,其特征在于,所述方法还包括,所述当前备服务器根据所述当前主服务器发送的响应消息组播确定消息是否确收。
15.如权利要求8所述的方法,其特征在于,所述仲裁机为所述第一服务器和所述第二服务器分配角色包括:系统启动时,所述仲裁机将所述第一服务器与所述第二服务器中先启动者确定为主服务器,后启动者确定为备服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710198417.7A CN106953761B (zh) | 2017-03-29 | 2017-03-29 | 服务器备灾系统及基于备灾系统的处理消息的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710198417.7A CN106953761B (zh) | 2017-03-29 | 2017-03-29 | 服务器备灾系统及基于备灾系统的处理消息的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106953761A CN106953761A (zh) | 2017-07-14 |
CN106953761B true CN106953761B (zh) | 2020-03-10 |
Family
ID=59475498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710198417.7A Active CN106953761B (zh) | 2017-03-29 | 2017-03-29 | 服务器备灾系统及基于备灾系统的处理消息的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106953761B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109842639B (zh) * | 2017-11-24 | 2020-09-08 | 华为技术有限公司 | 实现切换过程中业务连续性的方法、设备及系统 |
CN107807630B (zh) * | 2017-11-29 | 2020-06-16 | 瑞斯康达科技发展股份有限公司 | 一种主备设备的切换控制方法、其切换控制系统及装置 |
CN109753387B (zh) * | 2018-01-24 | 2019-12-20 | 比亚迪股份有限公司 | 轨道交通多媒体系统的双机热备方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192076A (ja) * | 2002-12-06 | 2004-07-08 | Univ Waseda | 画像生成装置 |
CN101119187A (zh) * | 2007-09-06 | 2008-02-06 | 上海可鲁系统软件有限公司 | 一种主从设备切换控制方法 |
CN101217353A (zh) * | 2007-01-05 | 2008-07-09 | 深圳市科陆电子科技股份有限公司 | 一种呼叫中心多点双机冗余系统的控制方法 |
CN101309167A (zh) * | 2008-06-27 | 2008-11-19 | 华中科技大学 | 基于集群备份的容灾系统及方法 |
CN102281563A (zh) * | 2010-06-11 | 2011-12-14 | 海能达通信股份有限公司 | 一种通信系统、用在通信系统中的切换方法和网管服务器 |
CN102868560A (zh) * | 2012-09-28 | 2013-01-09 | 南京恩瑞特实业有限公司 | 一种服务器热备实现系统及方法 |
CN103607310A (zh) * | 2013-11-29 | 2014-02-26 | 华为技术有限公司 | 一种异地容灾的仲裁方法 |
-
2017
- 2017-03-29 CN CN201710198417.7A patent/CN106953761B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004192076A (ja) * | 2002-12-06 | 2004-07-08 | Univ Waseda | 画像生成装置 |
CN101217353A (zh) * | 2007-01-05 | 2008-07-09 | 深圳市科陆电子科技股份有限公司 | 一种呼叫中心多点双机冗余系统的控制方法 |
CN101119187A (zh) * | 2007-09-06 | 2008-02-06 | 上海可鲁系统软件有限公司 | 一种主从设备切换控制方法 |
CN101309167A (zh) * | 2008-06-27 | 2008-11-19 | 华中科技大学 | 基于集群备份的容灾系统及方法 |
CN102281563A (zh) * | 2010-06-11 | 2011-12-14 | 海能达通信股份有限公司 | 一种通信系统、用在通信系统中的切换方法和网管服务器 |
CN102868560A (zh) * | 2012-09-28 | 2013-01-09 | 南京恩瑞特实业有限公司 | 一种服务器热备实现系统及方法 |
CN103607310A (zh) * | 2013-11-29 | 2014-02-26 | 华为技术有限公司 | 一种异地容灾的仲裁方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106953761A (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3876607A1 (en) | Intelligent scheduling method, terminal device, edge node cluster and intelligent scheduling system | |
EP3490224A1 (en) | Data synchronization method and system | |
CN110971698B (zh) | 一种数据转发系统、方法及装置 | |
EP2688240A1 (en) | Method, system and device for switching and selecting clock source device | |
CN102769626B (zh) | 一种会话信息同步方法、装置以及系统 | |
EP3229420A1 (en) | Method for establishing persistent connection between multiple smart devices and server, and smart device | |
CN106953761B (zh) | 服务器备灾系统及基于备灾系统的处理消息的方法 | |
CN103051534A (zh) | 一种报文处理方法及装置 | |
CN104184756A (zh) | 一种数据同步方法、装置及系统 | |
US11271714B2 (en) | Time synchronization system, time master, management master, and time synchronization method | |
CN113315665B (zh) | 一种双网卡终端设备的报文发送方法、装置、设备及介质 | |
CN114297296B (zh) | 一种广播用的服务器主备切换系统 | |
CN107104822B (zh) | 服务器备灾处理方法、装置、存储介质及电子设备 | |
CN114826812B (zh) | 一种rs485通信多主站的实现方法及系统 | |
CN110601786B (zh) | 一种时间同步方法、中继设备及装置 | |
CN110225133B (zh) | 消息发送方法、节点、装置、系统及相关设备 | |
CN105812492B (zh) | 一种数据同步方法及系统 | |
CN115514698A (zh) | 协议计算方法、交换机、跨设备链路聚合系统及存储介质 | |
CN114884805B (zh) | 数据传输方法、装置、终端及存储介质 | |
CN111416851A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
US20050262224A1 (en) | Method for modifying one or more parameters for the operation of a network and subscribers for carrying out this method | |
US10310931B2 (en) | Communications state estimation device, communications state estimation method, and storage medium that stores communications state estimation program | |
EP3232646A1 (en) | Apparatus for relaying data transmission in scada system | |
CN110572440B (zh) | 用于数据传输的方法及装置、家电设备、存储介质 | |
US9307509B1 (en) | Transmitting radio signals using simultaneous retransmission |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200110 Address after: 11, building 310053, Hang Seng tower, 3588 Jiangnan Avenue, Hangzhou, Zhejiang, Binjiang District Applicant after: Hundsun Technologies Inc. Address before: 310053 Hang Seng mansion, No. 3588, main road, the south of the River, Binjiang District, Hangzhou, Zhejiang province city Applicant before: Hangzhou Ji Ji Network Technology Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |