CN106685697B - 一种异常边际消息数据恢复处理的方法及系统 - Google Patents
一种异常边际消息数据恢复处理的方法及系统 Download PDFInfo
- Publication number
- CN106685697B CN106685697B CN201611108042.2A CN201611108042A CN106685697B CN 106685697 B CN106685697 B CN 106685697B CN 201611108042 A CN201611108042 A CN 201611108042A CN 106685697 B CN106685697 B CN 106685697B
- Authority
- CN
- China
- Prior art keywords
- message
- marginal
- gateway
- messages
- message queue
- 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/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种异常边际消息数据恢复处理的方法及系统,该方法包括:通过一网关系统主用机在第一系统与第二系统之间进行消息交互;以一预设长度的边际消息队列动态备份第一系统与第二系统之间进行交互的消息;当网关系统主用机出现异常时,将第一系统与第二系统之间的连接切换至一网关系统备用机;根据出现异常时的边际消息队列进行恢复,使第一系统与第二系统通过网关系统备用机继续进行消息交互。通过实施本发明,能够针对在第一系统及第二系统进行消息交互的网关系统主用机出现异常情况时,及时将第一系统及第二系统的消息交互切换至网关系统备用机,并实现恢复处理,从而保障第一系统及第二系统之间消息交互的正常运行。
Description
技术领域
本发明是关于沟通异质系统的网关类系统的消息恢复技术,具体地,是关于一种交易类网关系统在系统切换时刻的异常边际消息数据恢复处理的方法及系统。
背景技术
随着分布式计算的深入发展,各种分散化的异质系统间越来越需要通过松耦合的方式沟通信息。这些需要沟通信息的系统往往有不同的运行环境、不同的系统架构、不同的业务类型和不同的服务对象,若它们直接交互,彼此可能需要做出大量的改造,付出巨额的改造成本,有时候其改造带来的额外影响甚至是不可预知的。而通过网关类系统进行交互成为松耦合的自然选择。网关类系统在此过程中扮演沟通异质系统的关键角色,通常需要在异质系统间收发承载业务信息的消息,尤其是对于交易类网关系统,更是对消息交互的准确性、及时性、时序性和可靠性提出非常高的要求。
对于交易类网关系统,应对这些要求是较为艰难的挑战。尤其是当系统实际运行过程中突发各种情况(诸如突然掉电或突然断网)时,将会导致交易类网关系统主备切换时,主用机上存在没有来得及及时处理的消息,而备用机已经无法从主用机进行状态恢复,有可能损失和漏发边际消息(本文中的边际消息指的是发生故障的时间点附近的需要重点关注其处理状态的消息)。这些问题的存在,为整个系统的安全、稳定、可靠的运行带来不可预知的风险。因此,迫切需要一种异常边际消息数据恢复处理方法来保障系统的可靠运行。
发明内容
本发明实施例的主要目的在于提供一种异常边际消息数据恢复处理的方法及系统,以实现在异质系统交互过程出现异常时,及时进行数据恢复处理,从而保障异质系统的可靠运行。
为了实现上述目的,本发明实施例提供一种异常边际消息数据恢复处理的方法,所述的方法包括:通过一网关系统主用机在第一系统与第二系统之间进行消息交互;以一预设长度的边际消息队列动态备份所述第一系统与第二系统之间进行交互的消息;当所述网关系统主用机出现异常时,将所述第一系统与第二系统之间的连接切换至一网关系统备用机;根据出现异常时的所述边际消息队列进行恢复,使所述第一系统与第二系统通过所述网关系统备用机继续进行消息交互。
在一实施例中,上述的根据出现异常时的所述边际消息队列进行恢复,具体包括:判断出现异常时的所述边际消息队列中的消息是否处于未处理状态;如果是,则解析所述消息,获取其中的业务信息;将所述业务信息打上可能重复标记,打包发送至所述的第二系统;判断带有所述可能重复标记的业务信息是否属于重复消息;如果否,则对带有所述可能重复标记的业务信息进行恢复处理。
在一实施例中,当判断所述边际消息队列中的消息不处于未处理状态时,则将不处于未处理状态的所述消息发送至所述的第二系统进行附加判断和处理。
在一实施例中,当判断带有所述可能重复标记的业务信息属于重复消息时,则将带有所述可能重复标记的业务信息在所述的第二系统中进行存储。
在一实施例中,上述的以一预设长度的边际消息队列动态备份所述第一系统与第二系统之间进行交互的消息,具体包括:判断所述边际消息队列是否达到所述预设长度;如果否,则将所述第一系统与第二系统之间进行交互的新消息备份于所述的边际消息队列中;如果是,则将最早备份于所述边际消息队列中的消息删除,并将所述第一系统与第二系统之间进行交互的新消息备份于所述的边际消息队列中。
在一实施例中,通过以下步骤判断所述网关系统主用机是否出现异常:按照设定的心跳间隔时间,周期性向所述网关系统主用机发出心跳检测消息;判断是否在一预设时间内接收到所述网关系统主用机反馈的心跳检测回应消息;如果否,则按照预设重试次数,重复按照设定的心跳间隔时间,周期性向所述网关系统主用机发出心跳检测消息;进一步判断是否在所述预设重试次数内均未接收到所述网关系统主用机反馈的心跳检测回应消息;如果是,则判定所述网关系统主用机出现异常。
本发明实施例还提供一种异常边际消息数据恢复处理的系统,所述的系统包括:消息交互单元,用于通过一网关系统主用机在第一系统与第二系统之间进行消息交互;边际消息队列存储单元,用于以一预设长度的边际消息队列动态备份所述第一系统与第二系统之间进行交互的消息;网关切换单元,用于当所述网关系统主用机出现异常时,将所述第一系统与第二系统之间的连接切换至一网关系统备用机;恢复处理单元,用于根据出现异常时的所述边际消息队列进行恢复,使所述第一系统与第二系统通过所述网关系统备用机继续进行消息交互。
在一实施例中,上述的恢复处理单元具体用于:判断出现异常时的所述边际消息队列中的消息是否处于未处理状态;如果是,则解析所述消息,获取其中的业务信息;将所述业务信息打上可能重复标记,打包发送至所述的第二系统;判断带有所述可能重复标记的业务信息是否属于重复消息;如果否,则对带有所述可能重复标记的业务信息进行恢复处理。
在一实施例中,当判断所述边际消息队列中的消息不处于未处理状态时,所述恢复处理单元将不处于未处理状态的所述消息发送至所述的第二系统进行附加判断和处理。
在一实施例中,当判断带有所述可能重复标记的业务信息属于重复消息时,所述恢复处理单元将带有所述可能重复标记的业务信息在所述的第二系统中进行存储。
在一实施例中,上述的边际消息队列存储单元具体用于:判断所述边际消息队列是否达到所述预设长度;如果否,则将所述第一系统与第二系统之间进行交互的新消息备份于所述的边际消息队列中;如果是,则将最早备份于所述边际消息队列中的消息删除,并将所述第一系统与第二系统之间进行交互的新消息备份于所述的边际消息队列中。
在一实施例中,上述的系统还包括:异常判断单元,用于:按照设定的心跳间隔时间,周期性向所述网关系统主用机发出心跳检测消息;判断是否在一预设时间内接收到所述网关系统主用机反馈的心跳检测回应消息;如果否,则按照预设重试次数,重复按照设定的心跳间隔时间,周期性向所述网关系统主用机发出心跳检测消息;进一步判断是否在所述预设重试次数内均未接收到所述网关系统主用机反馈的心跳检测回应消息;如果是,则判定所述网关系统主用机出现异常。
本发明实施例的有益效果在于,能够针对在第一系统及第二系统进行消息交互的网关系统主用机出现异常情况时,及时将第一系统及第二系统的消息交互切换至网关系统备用机,并实现恢复处理,从而保障第一系统及第二系统之间消息交互的正常运行。并且,在保障可靠性前提下,引入“边际消息”的概念,由于有效缩减了在消息数据恢复时需要关注的范围,同时进一步通过消息处理状态定位到概率最高的潜在漏发消息,这大大节约了消息恢复时间,大幅度提升了消息处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的异常边际消息数据恢复处理的方法的流程示意图;
图2为根据本发明实施例的基于心跳检测机制来检测网关系统主用机是否处于正常状态的流程示意图;
图3为根据本发明实施例的根据出现异常时的边际消息队列进行恢复的流程示意图;
图4为根据本发明实施例的异常边际消息数据恢复处理的系统的结构示意图;
图5为根据本发明实施例的异常边际消息数据恢复处理的方法及系统的一个具体应用实例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种异常边际消息数据恢复处理的方法及系统。以下结合附图对本发明进行详细说明。
本发明实施例提供一种异常边际消息数据恢复处理的方法,如图1所示,该方法主要包括以下步骤:
步骤S101:通过一网关系统主用机在第一系统与第二系统之间进行消息交互;
步骤S102:以一预设长度的边际消息队列动态备份第一系统与第二系统之间进行交互的消息;
步骤S103:当网关系统主用机出现异常时,将第一系统与第二系统之间的连接切换至一网关系统备用机;
步骤S104:根据出现异常时的边际消息队列进行恢复,使第一系统与第二系统通过网关系统备用机继续进行消息交互。
通过上述的步骤S101至步骤S104,本发明实施例的异常边际消息数据恢复处理的方法,能够针对在第一系统及第二系统进行消息交互的网关系统主用机出现异常情况时,及时将第一系统及第二系统的消息交互切换至网关系统备用机,并实现恢复处理,从而保障第一系统及第二系统之间消息交互的正常运行。
以下结合具体示例,对本发明实施例的异常边际消息数据恢复处理的方法中的各个步骤做详细说明。
上述的步骤S101,通过一网关系统主用机在第一系统与第二系统之间进行消息交互。
在本发明实施例中,上述的第一系统和第二系统是具有不同的运行环境、不同的系统架构、不同的业务类型和不同的服务对象的两个系统,可称为异质系统。若两个异质系统直接交互,彼此可能需要做出大量的改造,付出巨额的改造成本,有时候其改造带来的额外影响甚至是不可预知的。因此,在此实施例中,则是采用网关类系统实现第一系统与第二系统之间的消息交互。网关类系统在此过程中扮演沟通异质系统的关键角色,通常需要在异质系统间收发承载业务信息的消息。
上述步骤S102,以一预设长度的边际消息队列动态备份第一系统与第二系统之间进行交互的消息。
在本发明实施例中,该边际消息队列中所存储的消息是按照一预设长度将第一系统与第二系统之间进行交互的消息进行备份的,并且,该边际消息队列保持为一个恒定长度(即该预设长度,且该预设长度是可配置的)的动态的消息队列,随着时间的推移不断更新该消息队列。较准确地限定了消息恢复处理所需关注的范围,为后续的消息快速恢复处理奠定了良好的基础。
例如,在一实施例中,该预设长度为100,在00点00分的时刻,在该边际消息队列中存储有长度为99的消息,包含有序号为1~99的消息;在00点01分,在该边际消息队列中存储第100个消息,则该边际消息队列中包含有序号为1~100的消息;在00点02份,在该编辑消息队列中存储第101个消息,此时,由于该边际消息队列的长度设定为100,为了保证边际消息队列的长度的恒定,则需将最早存储进该边际消息队列的消息删除,以存储第101个消息。因此,在判断此时边际消息队列达到预设长度后,先删除第1个消息,再将第101个消息存储进该边际消息队列。此时,在该边际消息队列中存储的是序号2~101的消息。
需要说明的是,上述的长度、消息序号等仅为举例说明边际消息队列的动态存储过程,而非用以限制本发明。在实际应用中,该边际消息队列的长度可根据需要进行配置。
上述步骤S103,当网关系统主用机出现异常时,将第一系统与第二系统之间的连接切换至一网关系统备用机。
在实际应用当中,由于网关系统是连接第一系统及第二系统的关键装置,因此,为了避免由于网关系统主用机在使用过程中出现故障而导致第一系统及第二系统之间无法进行消息交互而影响正常的业务或作业的开展,在网关系统中,还设置有网关系统备用机。由于交易类网关对时序的严格要求,在每一个特定的时刻,有且仅能有一台运行网关系统的机器处于使用中状态(网关系统主用机),其他节点(一个或多个网关系统备用机)都处于准备好被连接但并未连接上的状态,以随时准备当网关系统主用机出现异常时,进行切换,从而保证第一系统及第二系统之间能够保持正常的消息交互。
在一实施例中,在第一系统及第二系统之间的消息交互过程中,基于心跳检测机制来检测网关系统主用机是否处于正常状态。具体地,如图2所示,该检测过程主要包括以下步骤:
步骤S201:第一系统登录到网关系统主用机上,开始进行正常的消息交互。
步骤S202:第一系统按照设定的心跳间隔时间,周期性向网关系统发出心跳检测消息。正常情况下,网关系统主用机收到心跳检测消息时,都会第一时间给对端返回一条心跳检测回应消息。
步骤S203:如果在一预设时间内收到了心跳检测回应消息,则说明网关系统主用机还处于正常活动状态,则继续处理消息交互。
步骤S204:如果在该预设时间没有收到心跳检测回应消息,则说明网关系统主用机可能出现了异常情况,不能及时响应,有可能已经处于宕机状态。但是,为了排除临时性因素,会考虑重复数次发送心跳检测消息进行判断,首先使得重试计数器减一,然后接续到步骤S202。
步骤S205:当重试计数器降低到0,说明已经经过了设定的重试次数,超过了正常情况下的无响应时间,此时将按规则认定当前网关系统主用机已不可用。
步骤S206:第一系统启动切换,按预先配置的信息(包含网关系统备用机的序号及IP地址等信息备用机的序号及IP地址等信息)找到网关系统备用机,并试图连接并登录该网关系统备用机。
步骤S207:登录成功后,消息处理切换到网关系统备用机(此时该网关系统备用机接管了原网关系统主用机的职能,成为当前时刻的网关系统主用机)。
当切换至网关系统备用机连接该第一系统及第二系统后,进行数据恢复,即上述的步骤S104,根据出现异常时的边际消息队列进行恢复,使第一系统与第二系统通过网关系统备用机继续进行消息交互。
具体地,如图3所示,根据出现异常时的边际消息队列进行恢复的过程如下:
步骤S301:按时间顺序遍历该边际消息队列,顺序读取每一条消息。
步骤S302:检测消息的处理状态是否为未处理,对于未处理的消息,对其业务结构体进行解析,获取其中的各项业务信息,创建一条待发消息。
步骤S303:对此待发消息,确保其“执行ID”保持不变,“执行ID”作为后续接收端是否收到过同一条消息的判据。并且,将该待发消息打上一“可能重复”标记,一起打包发送至第二系统,进行附加判断及处理(即后续针对“可能重复”标记的判断及处理);
步骤S304:判断发送来的带有“可能重复”标记的消息是否属于重复消息。即检测其“执行ID”与当日已经收到过的某条消息是否相同,若相同,证明的确是一条重复消息,记入日志备查,并在第二系统中进行存储即可。
步骤S305:如果判定该消息不是重复消息,则证明该消息是一条漏发消息,则将按正常流程,在第二系统中进行正常的业务处理。
在一实施例中,上述步骤S304中针对“可能重复”标记的判断及处理过程,也可针对已经处理的消息进行,从而确定对于已处理消息且重复的消息,仅在第二系统中进行存储,而不处理其相关业务。
以下通过一具体示例对上述的网关系统主用机切换至网关系统备用机并进行恢复的过程进行说明。
例如,正常运行状态下,异质系统a通过网关系统主用机x与异质系统b进行消息交互。在信息交互过程中,异质系统a按照消息的序号(1,2,3,…)有序地发送给网关系统主用机x,网关系统主用机x在将消息(1,2,3,…)发送给异质系统b的同时,将消息(1,2,3,…)动态备份至边际消息队列中,该边际消息队列可存储于一边际消息缓存装置,该边际消息缓存装置可通过接口方式与网关系统主用机x进行连接实现数据传输。
并且,在上述消息交互过程中,异质系统a通过心跳检测机制检测网关系统主用机x是否正常运行。当异质系统a发送消息3给网关系统主用机x时,检测到该网关系统主用机x发生异常,此时,根据异质系统a中预设的网关系统配置列表查找下一个网关节点(即网关系统备用机y),并切换连接至网关系统备用机y。
此时,边际消息队列中备份有消息(1,2,3),因此,则按照序号顺序,先将消息1通过网关系统备用机y发送至异质系统b。在异质系统b中,检测该消息1是否处于未处理状态,并且检测其是否被标记“可能重复”标记。如果该消息1属于未处理、且并不是重复消息,则在异质系统b中进行正常处理。如果该消息1是已处理状态,或是属于重复消息,则无需进行后续处理,则记录在日志中,并进行存储即可。
然后,按照序号顺序,将边际消息队列中的消息2通过网关系统备用机y发送至异质系统b。在异质系统b中,检测该消息1是否处于未处理状态,并且检测其是否被标记“可能重复”标记。检测及后续处理过程与消息1类似,在此不再赘述。
以此类推,在处理完消息2后,再按照序号顺序,将边际消息队列中的消息3通过网关系统备用机y发送至异质系统b进行检测及处理。检测及后续处理过程与消息1及消息2类似,在此不再赘述。
在上述过程中,异质系统a通过网关备用系统y继续将后续消息(4,5,6,…)发送给网关系统备用机y。当网关系统备用机y按照顺序处理完原边际消息队列中的消息(1,2,3)后,即继续处理消息(4,5,6,…),此时,即完成了网关系统主用机x到网关系统备用机y的切换、以及数据恢复处理的过程。
可见,通过上述的步骤S101至步骤S104,解决了网关类系统的异常边际消息数据的缓存、检测、提取、转发、重复性校验等问题,主要具有如下效果与优点:
1)边际消息自动动态维护
本发明针对网关类系统最核心的消息沟通功能,提出“边际消息”的概念,关注的是一个动态队列中的消息,通过边际消息缓存机制维护了一个恒定长度(可配置)的动态的消息队列,随着时间的推移不断更新该消息队列,较为准确的限定了消息恢复处理所需关注的范围,为后续的消息快速处理奠定了良好的基础。
2)边际消息自动辨识
当网关系统发生主用机和备用机的切换时,由于本发明引入了消息处理状态维护机制,降低了从边际消息队列中进一步精准辨识潜在漏发消息的难度。
3)消息处理及时高效
由于有效缩减了在消息数据恢复时需要关注的范围,同时进一步通过消息处理状态定位到概率最高的潜在漏发消息,这大大节约了消息恢复时间,大幅度提升了消息处理的效率。
4)消息重复性判断提升了消息处理可靠性
本发明在处理潜在漏发消息时,还进一步通过重复消息检测处理机制,有效避免了重复消息处理带来的负面影响,提升了消息处理可靠性。
并且,在保障可靠性前提下,引入的“边际消息”的概念,由于有效缩减了在消息数据恢复时需要关注的范围,同时进一步通过消息处理状态定位到概率最高的潜在漏发消息,这大大节约了消息恢复时间,大幅度提升了消息处理的效率。
本发明实施例还提供一种异常边际消息数据恢复处理的系统,如图4所示,该系统主要包括:消息交互单元1、边际消息队列存储单元2、网关切换单元3及恢复处理单元4等。
其中,消息交互单元1用于通过一网关系统主用机在第一系统与第二系统之间进行消息交互;边际消息队列存储单元2用于以一预设长度的边际消息队列动态备份第一系统与第二系统之间进行交互的消息;网关切换单元3用于当网关系统主用机出现异常时,将第一系统与第二系统之间的连接切换至一网关系统备用机;恢复处理单元4用于根据出现异常时的边际消息队列进行恢复,使第一系统与第二系统通过网关系统备用机继续进行消息交互。
通过上述的各个组成部分之间的协同动作,本发明实施例的异常边际消息数据恢复处理的系统,能够针对在第一系统及第二系统进行消息交互的网关系统主用机出现异常情况时,及时将第一系统及第二系统的消息交互切换至网关系统备用机,并实现恢复处理,从而保障第一系统及第二系统之间消息交互的正常运行。
以下结合具体示例,对本发明实施例的异常边际消息数据恢复处理的系统中的各个组成部分及其功能做详细说明。
上述的消息交互单元1,用于通过一网关系统主用机在第一系统与第二系统之间进行消息交互。
在本发明实施例中,上述的第一系统和第二系统是具有不同的运行环境、不同的系统架构、不同的业务类型和不同的服务对象的两个系统,可称为异质系统。若两个异质系统直接交互,彼此可能需要做出大量的改造,付出巨额的改造成本,有时候其改造带来的额外影响甚至是不可预知的。因此,在此实施例中,则是采用网关类系统实现第一系统与第二系统之间的消息交互。网关类系统在此过程中扮演沟通异质系统的关键角色,通常需要在异质系统间收发承载业务信息的消息。
上述的边际消息队列存储单元2,所执行的功能是以一预设长度的边际消息队列动态备份第一系统与第二系统之间进行交互的消息。
在本发明实施例中,该边际消息队列中所存储的消息是按照一预设长度将第一系统与第二系统之间进行交互的消息进行备份的,并且,该边际消息队列保持为一个恒定长度(即该预设长度,且该预设长度是可配置的)的动态的消息队列,随着时间的推移不断更新该消息队列。较准确地限定了消息恢复处理所需关注的范围,为后续的消息快速恢复处理奠定了良好的基础。
例如,在一实施例中,该预设长度为100,在00点00分的时刻,在该边际消息队列中存储有长度为99的消息,包含有序号为1~99的消息;在00点01分,在该边际消息队列中存储第100个消息,则该边际消息队列中包含有序号为1~100的消息;在00点02份,在该编辑消息队列中存储第101个消息,此时,由于该边际消息队列的长度设定为100,为了保证边际消息队列的长度的恒定,则需将最早存储进该边际消息队列的消息删除,以存储第101个消息。因此,在判断此时边际消息队列达到预设长度后,先删除第1个消息,再将第101个消息存储进该边际消息队列。此时,在该边际消息队列中存储的是序号2~101的消息。
需要说明的是,上述的长度、消息序号等仅为举例说明边际消息队列的动态存储过程,而非用以限制本发明。在实际应用中,该边际消息队列的长度可根据需要进行配置。
上述网关切换单元3,则是用于当网关系统主用机出现异常时,将第一系统与第二系统之间的连接切换至一网关系统备用机。
在实际应用当中,由于网关系统是连接第一系统及第二系统的关键装置,因此,为了避免由于网关系统主用机在使用过程中出现故障而导致第一系统及第二系统之间无法进行消息交互而影响正常的业务或作业的开展,在网关系统中,还设置有网关系统备用机。由于交易类网关对时序的严格要求,在每一个特定的时刻,有且仅能有一台运行网关系统的机器处于使用中状态(网关系统主用机),其他节点(网关系统备用机)都处于准备好被连接但并未连接上的状态,以随时准备当网关系统主用机出现异常时,进行切换,从而保证第一系统及第二系统之间能够保持正常的消息交互。
在一实施例中,在第一系统及第二系统之间的消息交互过程中,基于心跳检测机制来检测网关系统主用机是否处于正常状态。具体地,如图2所示,该检测过程主要包括以下步骤:
步骤S201:第一系统登录到网关系统主用机上,开始进行正常的消息交互。
步骤S202:第一系统按照设定的心跳间隔时间,周期性向网关系统发出心跳检测消息。正常情况下,网关系统主用机收到心跳检测消息时,都会第一时间给对端返回一条心跳检测回应消息。
步骤S203:如果在一预设时间内收到了心跳检测回应消息,则说明网关系统主用机还处于正常活动状态,则继续处理消息交互。
步骤S204:如果在该预设时间没有收到心跳检测回应消息,则说明网关系统主用机可能出现了异常情况,不能及时响应,有可能已经处于宕机状态。但是,为了排除临时性因素,会考虑重复数次发送心跳检测消息进行判断,首先使得重试计数器减一,然后接续到步骤S202。
步骤S205:当重试计数器降低到0,说明已经经过了设定的重试次数,超过了正常情况下的无响应时间,此时将按规则认定当前网关系统主用机已不可用。
步骤S206:第一系统启动切换,按预先配置的信息(包含网关系统备用机的序号及IP地址等信息备用机的序号及IP地址等信息)找到网关系统备用机,并试图连接并登录该网关系统备用机。
步骤S207:登录成功后,消息处理切换到网关系统备用机(此时该网关系统备用机接管了原网关系统主用机的职能,成为当前时刻的网关系统主用机)。
当网关切换单元3切换至网关系统备用机连接该第一系统及第二系统后,进行数据恢复,即通过上述的恢复处理单元4,根据出现异常时的边际消息队列进行恢复,使第一系统与第二系统通过网关系统备用机继续进行消息交互。
具体地,如图3所示,恢复处理单元4所执行的根据出现异常时的边际消息队列进行恢复的过程如下:
步骤S301:按时间顺序遍历该边际消息队列,顺序读取每一条消息。
步骤S302:检测消息的处理状态是否为未处理,对于未处理的消息,对其业务结构体进行解析,获取其中的各项业务信息,创建一条待发消息;而对于处理状态是已处理的消息,则不需要再做处理,记入日志备查,并在第二系统中进行存储即可。
步骤S303:对此待发消息,确保其“执行ID”保持不变,“执行ID”作为后续接收端是否收到过同一条消息的判据。并且,将该待发消息打上一“可能重复”标记,一起打包发送至第二系统,进行附加判断及处理(即后续针对“可能重复”标记的判断及处理)。
步骤S304:判断发送来的带有“可能重复”标记的消息是否属于重复消息。即检测其“执行ID”与当日已经收到过的某条消息是否相同,若相同,证明的确是一条重复消息,记入日志备查,并在第二系统中进行存储即可。
步骤S305:如果判定该消息不是重复消息,则证明该消息是一条漏发消息,则将按正常流程,在第二系统中进行正常的业务处理。
在一实施例中,上述步骤S304中针对“可能重复”标记的判断及处理过程,也可针对已经处理的消息进行,从而确定对于已处理消息且重复的消息,仅在第二系统中进行存储,而不处理其相关业务。
由此,通过上述的各个组成部分,解决了网关类系统的异常边际消息数据的缓存、检测、提取、转发、重复性校验等问题,主要具有如下效果与优点:
1)边际消息自动动态维护
本发明针对网关类系统最核心的消息沟通功能,提出“边际消息”的概念,关注的是一个动态队列中的消息,通过边际消息缓存机制维护了一个恒定长度(可配置)的动态的消息队列,随着时间的推移不断更新该消息队列,较为准确的限定了消息恢复处理所需关注的范围,为后续的消息快速处理奠定了良好的基础。
2)边际消息自动辨识
当网关系统发生主用机和备用机的切换时,由于本发明引入了消息处理状态维护机制,降低了从边际消息队列中进一步精准辨识潜在漏发消息的难度。
3)消息处理及时高效
由于有效缩减了在消息数据恢复时需要关注的范围,同时进一步通过消息处理状态定位到概率最高的潜在漏发消息,这大大节约了消息恢复时间,大幅度提升了消息处理的效率。
4)消息重复性判断提升了消息处理可靠性
本发明在处理潜在漏发消息时,还进一步通过重复消息检测处理机制,有效避免了重复消息处理带来的负面影响,提升了消息处理可靠性。
并且,在保障可靠性前提下,引入的“边际消息”的概念,由于有效缩减了在消息数据恢复时需要关注的范围,同时进一步通过消息处理状态定位到概率最高的潜在漏发消息,这大大节约了消息恢复时间,大幅度提升了消息处理的效率。
在实际应用中,上述的异常边际消息数据恢复处理的方法及系统可应用于如图5所示的系统中,该系统包括:异质系统A、异质系统B、网关系统C、边际消息缓存装置D。
其中,异质系统A与异质系统B通过网关系统C沟通消息。网关系统C做多点部署。
具体地,该网关系统C中包含正在使用中网关系统主用机C1、处于等待被连接状态的网关系统备用机C2。由于交易类网关对时序的严格要求,在每一个特定的时刻,有且仅能有一台运行网关系统的机器处于使用中状态,其他节点都处于准备好被连接但并未连接上的状态。
边际消息缓存装置D是一个独立于网关系统主用机C1和网关系统备用机C2之外的第三方数据缓存装置,负责存储边际消息数据,并将边际消息数据按照一边际消息队列进行存储。边际消息队列D1是一个动态维护的消息队列,它按照配置的容量(长度)动态更新和维护边际消息。
在异质系统A及异质系统B中均包含有重复消息检测装置E及消息接收处理装置F,该重复消息检测装置E负责根据定义的规则检测网关系统备用机在恢复过程中发过来的可能重复的消息,并根据检测结果决定是否交由消息接收处理装置F进行后续的数据恢复处理。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,比如ROM/RAM、磁碟、光盘等。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种异常边际消息数据恢复处理的方法,其特征在于,所述的方法包括:
通过一网关系统主用机在第一系统与第二系统之间进行消息交互;
以一预设长度的边际消息队列动态备份所述第一系统与第二系统之间进行交互的消息;
当所述网关系统主用机出现异常时,将所述第一系统与第二系统之间的连接切换至一网关系统备用机;
根据出现异常时的所述边际消息队列进行恢复,使所述第一系统与第二系统通过所述网关系统备用机继续进行消息交互;
根据出现异常时的所述边际消息队列进行恢复,具体包括:
判断出现异常时的所述边际消息队列中的消息是否处于未处理状态;
如果是,则解析所述消息,获取其中的业务信息;
将所述业务信息打上可能重复标记,打包发送至所述的第二系统;
判断带有所述可能重复标记的业务信息是否属于重复消息;
如果否,则对带有所述可能重复标记的业务信息进行恢复处理。
2.根据权利要求1所述的异常边际消息数据恢复处理的方法,其特征在于,当判断所述边际消息队列中的消息不处于未处理状态时,则将不处于未处理状态的所述消息发送至所述的第二系统进行附加判断和处理。
3.根据权利要求1所述的异常边际消息数据恢复处理的方法,其特征在于,当判断带有所述可能重复标记的业务信息属于重复消息时,则将带有所述可能重复标记的业务信息在所述的第二系统中进行存储。
4.根据权利要求1所述的异常边际消息数据恢复处理的方法,其特征在于,以一预设长度的边际消息队列动态备份所述第一系统与第二系统之间进行交互的消息,具体包括:
判断所述边际消息队列是否达到所述预设长度;
如果否,则将所述第一系统与第二系统之间进行交互的新消息备份于所述的边际消息队列中;
如果是,则将最早备份于所述边际消息队列中的消息删除,并将所述第一系统与第二系统之间进行交互的新消息备份于所述的边际消息队列中。
5.根据权利要求1所述的异常边际消息数据恢复处理的方法,其特征在于,通过以下步骤判断所述网关系统主用机是否出现异常:
按照设定的心跳间隔时间,周期性向所述网关系统主用机发出心跳检测消息;
判断是否在一预设时间内接收到所述网关系统主用机反馈的心跳检测回应消息;
如果否,则按照预设重试次数,重复按照设定的心跳间隔时间,周期性向所述网关系统主用机发出心跳检测消息;
进一步判断是否在所述预设重试次数内均未接收到所述网关系统主用机反馈的心跳检测回应消息;
如果是,则判定所述网关系统主用机出现异常。
6.一种异常边际消息数据恢复处理的系统,其特征在于,所述的系统包括:
消息交互单元,用于通过一网关系统主用机在第一系统与第二系统之间进行消息交互;
边际消息队列存储单元,用于以一预设长度的边际消息队列动态备份所述第一系统与第二系统之间进行交互的消息;
网关切换单元,用于当所述网关系统主用机出现异常时,将所述第一系统与第二系统之间的连接切换至一网关系统备用机;
恢复处理单元,用于根据出现异常时的所述边际消息队列进行恢复,使所述第一系统与第二系统通过所述网关系统备用机继续进行消息交互;
所述的恢复处理单元具体用于:
判断出现异常时的所述边际消息队列中的消息是否处于未处理状态;
如果是,则解析所述消息,获取其中的业务信息;
将所述业务信息打上可能重复标记,打包发送至所述的第二系统;
判断带有所述可能重复标记的业务信息是否属于重复消息;
如果否,则对带有所述可能重复标记的业务信息进行恢复处理。
7.根据权利要求6所述的异常边际消息数据恢复处理的系统,其特征在于,当判断所述边际消息队列中的消息不处于未处理状态时,所述恢复处理单元将不处于未处理状态的所述消息发送至所述的第二系统进行附加判断和处理。
8.根据权利要求6所述的异常边际消息数据恢复处理的系统,其特征在于,当判断带有所述可能重复标记的业务信息属于重复消息时,所述恢复处理单元将带有所述可能重复标记的业务信息在所述的第二系统中进行存储。
9.根据权利要求6所述的异常边际消息数据恢复处理的系统,其特征在于,所述的边际消息队列存储单元具体用于:
判断所述边际消息队列是否达到所述预设长度;
如果否,则将所述第一系统与第二系统之间进行交互的新消息备份于所述的边际消息队列中;
如果是,则将最早备份于所述边际消息队列中的消息删除,并将所述第一系统与第二系统之间进行交互的新消息备份于所述的边际消息队列中。
10.根据权利要求6所述的异常边际消息数据恢复处理的系统,其特征在于,所述的系统还包括:异常判断单元,用于:
按照设定的心跳间隔时间,周期性向所述网关系统主用机发出心跳检测消息;
判断是否在一预设时间内接收到所述网关系统主用机反馈的心跳检测回应消息;
如果否,则按照预设重试次数,重复按照设定的心跳间隔时间,周期性向所述网关系统主用机发出心跳检测消息;
进一步判断是否在所述预设重试次数内均未接收到所述网关系统主用机反馈的心跳检测回应消息;
如果是,则判定所述网关系统主用机出现异常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611108042.2A CN106685697B (zh) | 2016-12-06 | 2016-12-06 | 一种异常边际消息数据恢复处理的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611108042.2A CN106685697B (zh) | 2016-12-06 | 2016-12-06 | 一种异常边际消息数据恢复处理的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106685697A CN106685697A (zh) | 2017-05-17 |
CN106685697B true CN106685697B (zh) | 2020-03-13 |
Family
ID=58867558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611108042.2A Active CN106685697B (zh) | 2016-12-06 | 2016-12-06 | 一种异常边际消息数据恢复处理的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106685697B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113395177B (zh) * | 2021-06-10 | 2022-05-17 | 浙江亿邦通信科技有限公司 | 一种5g网关的掉电保护方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227472A (zh) * | 2008-02-01 | 2008-07-23 | 中国建设银行股份有限公司 | 一种资金信息管理系统及方法 |
EP2479671A2 (en) * | 2006-08-04 | 2012-07-25 | TSX Inc. | Failover system and method |
CN102868597A (zh) * | 2012-10-08 | 2013-01-09 | 鞠洪尧 | 一种智能型冗余网关 |
-
2016
- 2016-12-06 CN CN201611108042.2A patent/CN106685697B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2479671A2 (en) * | 2006-08-04 | 2012-07-25 | TSX Inc. | Failover system and method |
CN101227472A (zh) * | 2008-02-01 | 2008-07-23 | 中国建设银行股份有限公司 | 一种资金信息管理系统及方法 |
CN102868597A (zh) * | 2012-10-08 | 2013-01-09 | 鞠洪尧 | 一种智能型冗余网关 |
Also Published As
Publication number | Publication date |
---|---|
CN106685697A (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330475B (zh) | 一种通信系统中管理主备节点的方法和装置及高可用集群 | |
KR102167613B1 (ko) | 메시지 푸시 방법 및 장치 | |
CN106533805B (zh) | 一种微服务请求处理方法、微服务控制器及微服务架构 | |
CN110581852A (zh) | 一种高效型拟态防御系统及方法 | |
CN102355368B (zh) | 一种网络设备的故障处理方法及系统 | |
JP5343436B2 (ja) | 情報管理システム | |
CN101404568A (zh) | 双网卡热备冗余方法 | |
KR20150086649A (ko) | 데이터 분산 처리 장치 및 방법, 그리고 스토리지 서버 | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
EP2723017A1 (en) | Method, apparatus and system for implementing distributed auto-incrementing counting | |
CN106301840B (zh) | 双向转发检测bfd报文的发送方法及装置 | |
US20030014516A1 (en) | Recovery support for reliable messaging | |
CN102769533A (zh) | 数据处理方法和数据处理装置 | |
CN107688512A (zh) | 一种优化虚拟机数据备份方法和系统 | |
CN102457400B (zh) | 一种防止磁盘镜像资源发生脑裂的方法 | |
JP2013222313A (ja) | 障害連絡効率化システム | |
CN102143011B (zh) | 一种实现网络保护的装置及方法 | |
CN102984739A (zh) | 故障信息处理方法及装置 | |
CN102521060A (zh) | 基于看门狗本地检测技术的高可用集群系统假死解决方法 | |
CN106685697B (zh) | 一种异常边际消息数据恢复处理的方法及系统 | |
CN113055203B (zh) | Sdn控制平面的异常恢复方法及装置 | |
CN104243473A (zh) | 一种数据传输的方法以及装置 | |
JP2015114952A (ja) | ネットワークシステム、監視制御装置およびソフトウェア検証方法 | |
CN110661599B (zh) | 一种主、备节点间的ha实现方法、装置及存储介质 | |
CN114301763B (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 | ||
GR01 | Patent grant |