消息转发方法和消息转发装置与流程

文档序号:33710627发布日期:2023-03-31 23:39阅读:52来源:国知局
消息转发方法和消息转发装置与流程

1.本发明涉及网络通信领域,尤其涉及一种消息转发方法和消息转发装置。


背景技术:

2.随着在线支付的日渐普及,对线上交易网络的稳定性要求越来越高,单节点通信存在因为网络异常而导致中断的问题,因此,为了确保消息能够送达,目前存在基于集群服务器的方法和基于支付机构本身的saf机制。
3.但在基于集群服务器的方法中,应用服务器和前置机服务器均采用多节点布置,当交易量不大时,存在资源浪费的问题。
4.在基于支付机构本身的saf机制的方法中,当支付机构检测到交易超时后,可以自动调起交易重发,确保交易成功,但是对于已在应用节点进行正常处理的交易,重发会加大应用节点的负担且影响用户体验。
5.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。


技术实现要素:

6.本发明实施例提供一种消息转发方法,通过在同一级集群的不同节点之间相互转发交易消息,能够提高交易成功率,提升用户体验。所述方法包括:
7.对接收到的报文的前端来源节点进行初始化,设置表示交易是否来自上级应用节点的标识符;
8.监控当前的网络服务是否正常;
9.在监控到当前的网络服务异常时,检测当前的网络服务是否处于第一网络服务异常;
10.在检测到当前的网络服务处于所述第一网络服务异常时,根据所述标识符判断所述报文是否来自上级应用节点;
11.在判断为所述报文来自上级应用节点的情况下,将所述报文转发至当前节点的备用节点;以及
12.在判断为所述报文不是来自上级应用节点的情况下,丢弃所述报文。
13.本发明实施例提供一种消息转发装置,通过在同一级集群的不同节点之间相互转发交易消息,能够提高交易成功率,提升用户体验。所述装置包括:
14.初始化单元,其对接收到的报文的前端来源节点进行初始化,设置表示交易是否来自上级应用节点的标识符;
15.监控单元,其监控当前的网络服务是否正常;
16.异常检测单元,其在所述监控单元监控到当前的网络服务异常时,检测当前的网络服务是否处于第一网络服务异常;
17.判断单元,其在所述异常检测单元检测到当前的网络服务处于所述第一网络服务
异常时,根据所述标识符判断所述报文是否来自上级应用节点;
18.异常处理单元,其在所述判断单元判断为所述报文来自上级应用节点的情况下,将所述报文转发至当前节点的备用节点,在判断为所述报文不是来自上级应用节点的情况下,丢弃所述报文。
19.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述消息转发方法。
20.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述消息转发方法。
21.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述消息转发方法。
22.本发明实施例中,通过在同一级集群的不同节点之间相互转发交易消息,能够提高交易成功率,提升用户体验。并且,与现有技术的应用服务器和前置机服务器均采用多节点布置相比,当交易量不大时,本发明通过备用节点转发来自上级应用节点的报文,能够节约资源。此外,仅在异常节点处请求重发报文,与现有技术的在已经进行正常处理的交易的应用节点重发报文相比,能够减轻节点的负担。
附图说明
23.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
24.图1是本发明实施例的消息转发方法的一个示意图。
25.图2是本发明实施例的消息转发方法的另一个示意图。
26.图3是本发明实施例的消息转发方法的一个应用的示意图。
27.图4是本发明实施例的消息转发装置的一个示意图。
28.图5是本发明实施例的消息转发装置的异常检测单元的一个示意图。
29.图6是本发明实施例的消息转发过程的一个示意图。
具体实施方式
30.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
31.本发明实施例提供一种消息转发方法,图1是本发明实施例的消息转发方法的一个示意图。如图1所示,消息转发方法100包括:
32.步骤101:对接收到的报文的前端来源节点进行初始化,设置表示交易是否来自上级应用节点的标识符;
33.步骤102:监控当前的网络服务是否正常,“是”的情况下进入步骤103,“否”的情况下进入步骤108;
34.步骤103:检测当前的网络服务是否处于第一网络服务异常,“是”的情况下进入步骤104,“否”的情况下进入步骤107;
35.步骤104:根据所述标识符判断所述报文是否来自上级应用节点,“是”的情况下进入步骤105,“否”的情况下进入步骤106;
36.步骤105:将所述报文转发至当前节点的备用节点;
37.步骤106:丢弃所述报文。
38.由此,通过在同一级集群的不同节点之间相互转发交易消息,能够提高交易成功率,提升用户体验。
39.在步骤103中,例如,可以通过参数随时配置需要捕获的表示错误的应答码,对于交易处理过程中出现的表示错误的应答码判断是否为指定错误码,如果为指定错误码,那么可以判断当前的网络服务处于指定的网络服务异常,即,第一网络服务异常。
40.例如,指定应答码“0000000”表示“发送成功”,指定应答码“0000000”以外的应答码表示“发送失败”,例如,指定“0000001”表示“发送失败”,那么在捕获到“0000001”时,判断当前的网络服务处于第一网络服务异常。
41.再例如,指定应答码“0000000”表示“接收成功”,指定应答码“0000000”以外的应答码表示“接收失败”,例如,指定“0000001”表示“接收失败”,那么在捕获到“0000001”时,判断当前的网络服务处于第一网络服务异常。
42.此外,还可以指定表示“解包成功”的应答码和表示“解包失败”的应答码,在捕获到表示“解包失败”的应答码时,判断当前的网络服务处于第一网络服务异常。
43.此外,上述以“0000000”表示“成功”为例进行了说明,但本发明实施不限于此,本发明可以按照不同的报错场景自定义错误码,当捕获到指定错误码时,就可以判断当前网络服务处于指定的网络服务异常,进而可以调起异常处理。
44.在本发明实施例中,以转发“报文”为例进行了说明,该报文可以是交易消息,但本发明实施例不限于此,还可以转发数据包等,本发明实施例对转发的消息是何种消息或数据并不作限制。
45.图2是本发明实施例的消息转发方法的另一个示意图。
46.在至少一个实施例中,如图2所示,步骤103可以包括:
47.步骤1031:检测当前的网络服务的异常类型;
48.步骤1032:根据所述异常类型生成对应的监控交易报错信息;
49.步骤1033:根据所述监控交易报错信息检测当前的网络服务是否处于所述第一网络服务异常。
50.下面以“接收报文”为例进行说明,例如,当检测到发生“接收失败”的异常时,生成与“接收失败”对应的监控交易报错信息,例如,当指定“0000001”表示“接收失败”时,生成“0000001”的应答码,当检测到生成了“0000001”的应答码时,判定处于第一网络服务异常。
51.在至少一个实施例中,如图1所示,方法100还可以包括:
52.步骤107:在检测到当前的网络服务不是处于所述第一网络服务异常时,请求前端来源节点重发。
53.在至少一个实施例中,如图1所示,方法100还可以包括:
54.步骤108:在监控到当前的网络服务正常时,将接收到的所述报文转发至服务方。
55.图3是本发明实施例的消息转发方法的一个应用的示意图。
56.如图3所示,在一个消息转发系统200中,请求方201通过网络202与服务方203进行通信,网络202可以包括集群221、222、223,集群221、222、223之间可以相互连接,也可以单向连接,本技术对此不作限制。集群内包括多个节点,例如,如图3所示,集群221内包括节点1、节点2、节点3和节点4,集群222内包括节点1、节点2、节点2-1和节点3,下面以图3为例对本发明实施例的消息转发方法进行说明。
57.例如,在集群222的节点2处,对接收到的报文的前端来源节点进行初始化,设置表示交易是否来自上级应用节点的标识符front_flg,如果接收到的报文的前端来源节点来自上级应用节点,那么将front_flg设置为0,如果接收到的报文的前端来源节点来自同一集群的另一前置机节点,那么将front_flg设置为1,例如,如果接收到的报文的前端来源节点来自集群221的节点3,那么将front_flg设置为0,如果接收到的报文的前端来源节点来自集群222的节点1,那么将front_flg设置为1;监控当前的网络服务是否正常,如果异常,那么继续检测当前的网络服务是否处于第一网络服务异常;如果处于第一网络服务异常,那么根据标识符front_flg判断所述报文是否来自上级应用节点,即,判断front_flg的值是否为0;如果front_flg的值为0,那么将所述报文转发至当前节点的备用节点,例如,节点2-1为节点2的备用节点,如果在节点2处收到的报文来自集群221的节点3,那么节点2将报文转发至备用节点2-1,从而由备用节点2-1继续向下转发报文;如果front_flg的值为1,那么丢弃该报文。
58.此外,在集群222的节点2处,在检测当前的网络服务是否处于第一网络服务异常时,可以检测当前的网络服务的异常类型,通过参数随时配置需要捕获的错误应答码,判断应答码是否为指定错误码,如果是指定错误码,那么判断当前的网络服务处于第一网络服务异常。
59.此外,在集群222的节点2处,如果在检测到当前的网络服务不是处于所述第一网络服务异常时,可以请求前端来源节点重发报文,例如,如果节点2接收到来自同一集群的节点1的报文,那么在检测到当前的网络服务不是处于所述第一网络服务异常时,可以请求节点1重发报文。
60.此外,在集群222的节点2处,在监控到当前的网络服务正常时,可以继续向下转发报文,以将接收到的所述报文转发至服务方,例如,可以将报文转发至下级节点3,进而通过集群223将报文转发至服务方。
61.通过本发明实施例,通过在同一级集群的不同节点之间相互转发交易消息,能够提高交易成功率,提升用户体验。并且,与现有技术的应用服务器和前置机服务器均采用多节点布置相比,当交易量不大时,本发明通过备用节点转发来自上级应用节点的报文,能够节约资源。此外,仅在异常节点处请求重发报文,与现有技术的在已经进行正常处理的交易的应用节点重发报文相比,能够减轻节点的负担。
62.本发明实施例提供一种消息转发装置,本发明实施例的消息转发装置解决问题的原理与上述消息转发方法相私,因此该消息转发装置的实施可以参见上述消息转发方法的实施,重复之处不再赘述。本发明实施例的消息转发装置可以被配置于集群中的节点服务器中。
63.图4是本发明实施例的消息转发装置的一个示意图。如图4所示,消息转发装置400
包括初始化单元401、监控单元402、异常检测单元403、判断单元404、异常处理单元405。
64.初始化单元401对接收到的报文的前端来源节点进行初始化,设置表示交易是否来自上级应用节点的标识符;监控单元402监控当前的网络服务是否正常;异常检测单元403在监控单元402监控到当前的网络服务异常时,检测当前的网络服务是否处于第一网络服务异常;判断单元404在异常检测单元403检测到当前的网络服务处于所述第一网络服务异常时,根据所述标识符判断所述报文是否来自上级应用节点;异常处理单元405在判断单元404判断为所述报文来自上级应用节点的情况下,将所述报文转发至当前节点的备用节点,在判断为所述报文不是来自上级应用节点的情况下,丢弃所述报文,由此,避免出现钟摆现象,从而避免由此导致服务器集群宕机。
65.由此,通过在同一级集群的不同节点之间相互转发交易消息,能够提高交易成功率,提升用户体验。
66.在至少一个实施例中,初始化单元401是正常处理模块中的组成部分,监控单元402、异常检测单元403、判断单元404是异常服务监控模块中的组成部分,异常处理单元405是异常处理模块的组成部分。
67.其中,正常处理模块可以接收请求,判断交易是否来自上级应用节点并初始化front_flg,在前置机节点和网络服务正常的情况下,直接将交易转发至服务方,进行下一步处理;
68.异常服务监控模块可以负责网络通讯检测和服务器状态检测,当该节点和下游服务方网络异常或者节点机本身应用服务异常时,异常服务监控模块能够捕获到此异常,并调起异常处理模块,通知正常处理模块将交易转发至异常处理模块。
69.异常处理模块可以主要用于接收来自正常处理模块的消息,首先进行报文初始化还原,对于判断来自上级应用节点的消息,将其转发至本节点的备用节点,对于判断来自同一集群其他节点的消息,不再进行转发,直接丢弃该消息。
70.图5是本发明实施例的消息转发装置的异常检测单元的一个示意图。如图5所示,异常检测单元403可以包括异常类型检测单元4031、报错信息生成单元4032、检测单元4033。
71.异常类型检测单元4031检测当前的网络服务的异常类型;报错信息生成单元4032根据所述异常类型生成对应的监控交易报错信息;检测单元4033根据所述监控交易报错信息检测当前的网络服务是否处于所述第一网络服务异常。
72.在至少一个实施例中,在异常检测单元403检测到当前的网络服务不是处于所述第一网络服务异常时,所述初始化单元401请求前端来源节点重发报文。
73.在至少一个实施例中,如图3所示,消息转发装置300还可以包括转发单元406,转发单元406在监控单元402监控到当前的网络服务正常时,将接收到的所述报文转发至服务方。
74.图6是本发明实施例的消息转发过程的一个示意图。如图6所示,节点601例如位于集群1内,节点602和节点603例如位于集群2内,节点601、602和603内均可以预先配置本发明实施例的消息转发装置400。
75.在网络服务正常的情况下,例如,节点601可以将收到的报文或数据包等转发至节点602,节点602可以将收到的报文转发至节点603。此外,还可以是节点603将收到的报文转
发至节点602,节点602将收到的报文转发至节点601。
76.如果节点603在收到来自节点602的报文时检测到出现了指定的网络服务异常,那么节点603将丢弃接收到的报文;
77.如果节点603在收到来自节点602的报文时检测到出现了指定的网络服务异常以外的网络服务异常,那么节点603请求节点602重发报文;
78.如果节点602在收到来自节点601的报文时检测到出现了指定的网络服务异常,那么节点602将收到的报文转发至节点602的备用节点;
79.如果节点602在收到来自节点601的报文时检测到出现了指定的网络服务异常以外的网络服务异常,那么节点602请求节点601重发报文。
80.由此,通过在同一级集群的不同节点之间相互转发交易消息,能够提高交易成功率,提升用户体验。
81.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述消息转发方法。
82.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述消息转发方法。
83.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述消息转发方法。
84.本发明实施例中,通过在同一级集群的不同节点之间相互转发交易消息,能够提高交易成功率,提升用户体验。并且,与现有技术的应用服务器和前置机服务器均采用多节点布置相比,当交易量不大时,本发明通过备用节点转发来自上级应用节点的报文,能够节约资源。此外,仅在异常节点处请求重发报文,与现有技术的在已经进行正常处理的交易的应用节点重发报文相比,能够减轻节点的负担。
85.本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
86.本发明是参照根据本发明实施例的方法、装置、系统、和计算机程序产品的示意图和/或流程图和/或方框图来描述的。应理解可由计算机程序指令实现示意图和/或流程图和/或方框图中的每一步骤和/或操作和/或流程和/或方框、以及示意图和/或流程图和/或方框图中的步骤和/或操作和/或流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在示意图一个步骤或多个步骤和/或流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
87.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在示意图一个步骤或多个步骤和/或流程图一个流程或
多个流程和/或方框图一个方框或多个方框中指定的功能。
88.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在示意图一个步骤或多个步骤和/或流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
89.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1