支付系统的节点状态探测方法及装置与流程

文档序号:13482244阅读:626来源:国知局

本发明涉及支付系统技术领域,特别涉及一种支付系统的节点状态探测方法及装置。



背景技术:

支付报文传输平台(paymentmessagetransfersystem,pmts)作为国家二代支付系统的支撑系统,负责支付系统与参与者、支付系统内部各节点之间的报文通讯。保证支付系统间报文传输的快速、安全、可靠,是确保国家二代支付系统稳定运行的必要前提。在报文传输中,最关键的是要确定报文发给系统中的哪个节点,使用节点的哪个远程队列,这一系列的选择与判断都是以探测机制得到的结果为基础的。通过探测可以确定相邻节点状态是否有效,判断对端节点的业务队列负载能力,择优选择远程队列发送业务报文,实现pmts系统智能路由功能。

对应于osi(opensysteminterconnection,开放系统互连)七层网络模型,由于只有网络层和数据链路层涉及到ip地址,因而现在主要的探测技术大致可以分为两类:网络层探测和数据链路层探测。下面对这两类探测技术进行介绍。

一、常用的网络层探测技术主要有传统的网络拓扑发现方法,大多是利用snmp(simplenetworkmanagementprotocol,简单网络管理协议)和icmp(internetcontrolmessageprotocol,icmp,控制报文协议)协议的:1、利用snmp协议构建网络拓扑是目前比较常见的一种方法。通过对被管理设备的mib库进行操作,提取出可利用的信息构建拓扑。该方法发现效率较高,易于实现,但由于这种方法需要遍历网络中所有路由器的路由表,对网络注入了额外的流量,且实时性不好。2、基于icmp协议的网络探测方法主要是利用ping/traceroute探测包可进行一定的拓扑发现。该方法易于实现,使用范围广,但网络负载较大,不能得到网络设备之间的连接关系,若要构建完整的拓扑结构,还需与其它信息配合。

二、常用的数据链路层探测方法主要有基于地址转发表和基于生成树的探测算法:1、基于地址转发表算法的核心是直接连接定理:分属两个交换机的一对端口是相连的,当且仅当这两个端口的地址转发条目集合的交集为空,且其并集中包含了该子网中所有交换机的地址条目。该性质的前提条件是每个交换机上的地址转发信息都是完整无缺的,这是一个难以克服的缺点。2、基于生成树的探测算法通过监听网桥周期性发送的bpdu以及读取mib中记录的有关生成树的信息,再通过相关算法进行拓扑结构探测,判断网桥的连接情况。但要求所有交换机必须可网管,开放snmp和stp服务。并且只能探测交换机之间的连接关系,不能探测交换机连接的主机设备。

综上所述,现有支付系统的节点状态探测方案准确率,效率以及安全性低。



技术实现要素:

本发明实施例提供了一种支付系统的节点状态探测方法,用以探测支付系统各节点的状态,为支付系统报文转发提供高可用的路由通道,该方法包括:

确定第一节点每第一预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第一时长;

将第一时长与预设的第二时长进行比较,根据比较结果确定第一节点的状态;

根据探测回应报文,确定第二节点的状态。

在一个实施例中,将第一时长与预设的第二时长进行比较,根据比较结果确定第一节点的状态,包括:

若第一时长小于第二时长,则确定第一节点的节点状态为正常状态;

若第一节点超过预设的第二时长未收到探测回应报文时,确定第一节点的状态为故障状态。

在一个实施例中,若第一节点超过预设的第二时长未收到探测回应报文时,确定第一节点的状态为故障状态,包括:

若第一节点超过预设的第二时长未收到第二节点的探测回应报文,接收到第二节点的探测请求报文,确定第一节点的发送状态为故障状态,接收状态为正常状态;

若第一节点超过预设的第二时长未收到第二节点的探测回应报文和探测请求报文,确定第一节点的发送状态为故障状态,接收状态为故障状态。

在一个实施例中,在确定第一节点的状态为故障状态之后,还包括:

确定第一节点每第二预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第三时长;第二预设时间间隔大于第一预设时间间隔;

若第三时长小于第二时长,则确定第一节点的节点状态为正常状态;若第一节点超过预设的第二时长收到探测回应报文时,丢弃探测回应报文;

当第一节点和第二节点的状态从正常状态转到故障状态或从故障状态转到正常状态时,第一节点和第二节点向支付系统的监控系统发送状态改变通知报文。

在一个实施例中,上述探测方法还包括:当第一节点的状态从故障状态转到正常状态时,触发第一节点的错误队列里的报文信息重新发送。

在一个实施例中,探测回应报文包括第二节点的状态和负载系数;第二节点的状态包括:第二节点的各服务器的连接状态,以及第二节点的每一远程队列的状态。

在一个实施例中,上述探测方法还包括:

将支付系统的各节点分为不同层级;

探测请求报文包括:第一节点的层级信息,以及第二节点待修改状态信息;

第二节点收到第一节点的探测请求报文时,检查第一节点的层级,如果第一节点的层级比第二节点的层级高,根据第二节点待修改状态信息,在第二节点端修改第二节点的状态。

本发明实施例还提供了一种支付系统的节点状态探测装置,用以探测支付系统各节点的状态,为支付系统报文转发提供高可用的路由通道,该装置包括:

第一时长确定模块,用于确定第一节点每第一预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第一时长;

第一节点状态确定模块,用于将第一时长与预设的第二时长进行比较,根据比较结果确定第一节点的状态;

第二节点状态确定模块,用于根据探测回应报文,确定第二节点的状态。

在一个实施例中,第一节点状态确定模块包括:

第一节点状态正常确定模块,用于若第一时长小于第二时长,则确定第一节点的节点状态为正常状态;

第一节点状态故障确定模块,用于若第一节点超过预设的第二时长未收到探测回应报文时,确定第一节点的状态为故障状态。

在一个实施例中,第一节点状态故障确定模块具体用于:

若第一节点超过预设的第二时长未收到第二节点的探测回应报文,接收到第二节点的探测请求报文,确定第一节点的发送状态为故障状态,接收状态为正常状态;

若第一节点超过预设的第二时长未收到第二节点的探测回应报文和探测请求报文,确定第一节点的发送状态为故障状态,接收状态为故障状态。

在一个实施例中,第一节点状态故障确定模块还用于:

确定第一节点每第二预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第三时长;第二预设时间间隔大于第一预设时间间隔;

若第三时长小于第二时长,则确定第一节点的节点状态为正常状态;若第一节点超过预设的第二时长收到探测回应报文时,丢弃探测回应报文;

当第一节点和第二节点的状态从正常状态转到故障状态或从故障状态转到正常状态时,第一节点和第二节点向支付系统的监控系统发送状态改变通知报文。

在一个实施例中,上述探测装置还包括:节点状态恢复模块,用于当第一节点的状态从故障状态转到正常状态时,触发第一节点的错误队列里的报文信息重新发送。

在一个实施例中,上述探测装置还包括:

层级划分模块,用于将支付系统的各节点分为不同层级;

探测请求报文包括:第一节点的层级信息,以及第二节点待修改状态信息;

节点状态管理模块,用于在第二节点收到第一节点的探测请求报文时,检查第一节点的层级,如果第一节点的层级比第二节点的层级高,根据第二节点待修改状态信息,在第二节点端修改第二节点的状态。

本发明实施例还提供了一种计算机设备,用以探测支付系统各节点的状态,为支付系统报文转发提供高可用的路由通道,该计算机设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上的支付系统的节点状态探测方法。

本发明实施例还提供了一种计算机可读存储介质,用以探测支付系统各节点的状态,为支付系统报文转发提供高可用的路由通道,该计算机可读存储介质存储有执行如上的支付系统的节点状态探测方法的计算机程序。

与传统的网络层探测方案和数据链路层的探测方案相比,本发明实施例提出了专属于应用层的节点探测方案,该方案通过确定第一节点每第一预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第一时长;将第一时长与预设的第二时长进行比较,根据比较结果确定第一节点的状态;根据所述探测回应报文,确定第二节点的状态,实现了安全、快速、可靠地进行支付系统的各节点状态的探测,从而给发送业务报文提供高可用的路由通道选择,保证了支付系统报文传输的快速、安全、可靠,为国家二代支付系统稳定运行提供了必要的前提,具有非常重大的现实意义。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:

图1是本发明实施例中支付系统的节点状态探测方法的流程示意图;

图2是本发明实施例中支付系统的节点状态探测逻辑示意图;

图3是本发明实施例中支付系统的探测状态定义的示意图;

图4是本发明实施例中涉及的第一预设时间间隔、第二预设时间间隔以及第二时长的示意图;

图5是本发明实施例中支付系统中的节点层级示意图;

图6是本发明实施例中发送探测请求报文处理流程示意图;

图7是本发明实施例中探测请求报文处理流程示意图;

图8是本发明实施例中支付系统的节点状态探测装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

一、常用的网络层探测技术主要有传统的网络拓扑发现方法,大多是利用snmp和icmp协议的。下面对这两种探测方法进行详细介绍。

1、利用snmp协议构建网络拓扑是目前比较常见的一种方法。通过对被管理设备的mib库进行操作,提取出可利用的信息构建拓扑。该方法发现效率较高,易于实现,但由于这种方法需要遍历网络中所有路由器的路由表,对网络注入了额外的流量,且实时性不好。

2、基于icmp协议的网络探测方法主要是利用ping/traceroute探测包可进行一定的拓扑发现。该方法易于实现,使用范围广,但网络负载较大,不能得到网络设备之间的连接关系,若要构建完整的拓扑结构,还需与其它信息配合。

二、数据链路层拓扑结构探测(又称为以太网物理拓扑结构探测)的主要任务是探测网络中交换机到路由器,交换机到交换机,交换机到终端设备之间的连接关系。常用的数据链路层探测方法主要有基于网桥转发表和基于网桥生成树的探测算法。下面对这两种探测方法进行详细介绍。

1、基于地址转发表算法的核心是直接连接定理:分属两个交换机的一对端口是相连的,当且仅当这两个端口的地址转发条目集合的交集为空,且其并集中包含了该子网中所有交换机的地址条目。该性质的前提条件是每个交换机上的地址转发信息都是完整无缺的,这是一个难以克服的缺点。

2、基于生成树的探测算法通过监听网桥周期性发送的bpdu以及读取mib中记录的有关生成树的信息,再通过相关算法进行拓扑结构探测,判断网桥的连接情况。但要求所有交换机必须可网管,开放snmp和stp服务。并且只能探测交换机之间的连接关系,不能探测交换机连接的主机设备。

由于在二代支付系统中节点与节点之间的链接以及消息传递都是借助mq中间件实现的,因此节点间的探测属于应用层探测。二代支付系统中报文的传输借助mq中间件,且mq为用户提供了程序接口。

因此,考虑到上述技术问题,发明人提出了基于socket接口技术,研发了一种用于维护相邻节点甚至是整个pmts网络中节点状态的安全、快速、可靠的节点探测策略:一、为了实现pmts整个系统用于完成报文的可靠传输,报文传输前需要确定相邻节点的状态,相邻节点的负载系数(相邻链路报文处理压力值),计算出相邻节点的时间差,从而给发送业务报文提供高可用的路由通道选择。二、当相邻节点链路从异常状态下恢复时,需要触发错误队列里的报文信息重新发送。三、为了实现快速切换运行和软件升级,日常维护,探测机制需要可以管理相邻节点状态,并且保证探测机制参数可配置,易于维护。下面对该支付系统的节点探测方法及装置进行详细介绍。

图1是本发明实施例中支付系统的节点状态探测方法的流程示意图,如图1所示,该方法包括如下步骤:

步骤101:确定第一节点每第一预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第一时长;

步骤102:将第一时长与预设的第二时长进行比较,根据比较结果确定第一节点的状态;

步骤103:根据探测回应报文,确定第二节点的状态。

与传统的网络层探测方案和数据链路层的探测方案相比,本发明实施例提出了专属于应用层的节点探测方案,该方案在每一节点都执行的操作为:首先,通过第一节点给第二节点发送节点状态探测请求报文,根据第一节点接收第二节点发来的探测回应报文的时间与第一节点发送探测请求报文的时间的差值(第一时长),以及第二时长,确定第一节点的状态,在第一节点端更新第一节点的状态,这样确定了第一节点的每一队列的发送和接收状态,在第二节点向第一节点发送探测请求报文时,第一节点就会将上述确定了的第一节点的每一队列的发送和接收状态,以及自身各个服务器的连接状态,以探测回应报文的形式,发送给第二节点。然后,第一节点更新自身状态,根据接收到的第二节点发来的探测回应报文携带的第二节点的状态,在第一节点端更新第二节点的节点状态,同时,第二节点也可以如上述第一探测节点的探测方式一样,在每第一预设时间间隔,第二节点向第一节点发送探测请求报文;根据第二节点接收第一节点的探测回应报文的时间与第二节点发送探测请求报文的时间的差值(第一时长),以及第二时长,确定第二节点的状态,在第二节点端更新第二节点的状态;根据接收到的第一节点的探测回应报文中的第一节点的状态,在第二节点端更新第一节点的节点状态。这样通过一去一回,双向探测,实现了安全、快速、可靠地进行支付系统的各节点状态的探测,从而给发送业务报文提供高可用的路由通道选择,保证了支付系统间报文传输的快速、安全、可靠,为国家二代支付系统稳定运行提供了必要的前提,具有非常重大的现实意义。

本发明实施例中提到的第一节点可以指:发送节点和探测节点等,第二节点可以指:接收节点、被探测节点、应答节点以及相邻节点等。在第二节点向第一节点进行节点状态探测时和上述步骤一致,本发明实施例提到的第一节点和第二节点可以是支付系统中的任一节点。

pmts整个系统用于完成报文的可靠传输,报文传输前各节点均应确定相邻节点的当前状态,节点探测策略即用于维护相邻节点甚至是整个pmts网络中节点状态。探测的对象包括相邻节点各服务器的连接状态以及发向各节点远程队列的状态。探测的方式是通过定时发送探测请求报文,并根据对方返回的探测回应报文实时更新上述状态。图2为本发明实施例提供的pmts节点探测机制,在图2中,npc的含义是国家处理中心,ccpc的含义是城市处理中心,mbfe的含义是参与者。pmts-mbfe代表支付系统中的参与者,pmts-ccpc代表支付系统中转发报文的中转节点,pmts-npc代表接受报文的最高级节点。所有参与者的报文都需要一层一层的向上转发至pmts的最高级节点,最高级节点再将报文发送给业务处理平台。

从图2中可以看出,pmts-npc与pmts-ccpc,pmts-ccpc与pmts-mbfe两个相邻节点间进行远程状态探测。pmts-ccpc在与pmts-mbfe探测时,需将链路状态实时反馈至pmts-npc。

业务处理平台中的pmts-cli与pmts-npc之间也将进行探测,而参与者行内系统与pmts-mbfe之间仅进行单向测试,即参与者发送探测报文至pmts-mbfe,pmts-mbfe向行内系统返回探测结果,但不主动探测行内系统。

探测对象:pmts节点、服务器、队列管理器运行状态,即确定第一节点每一远程队列的状态。每个节点有一到多个远程队列,不同的远程队列处理不同的报文。报文路由时,找到“中转节点”后,还要根据该报文分属于哪个业务系统,决定发往业务系统的哪个队列。

探测方法:相邻服务器之间互发节点状态探测请求报文,通过接收探测回应报文判断对方(第二节点)状态。

节点的运行状态是指:在运行过程中根据探测回应报文记录各服务器下队列管理器的状态,会把对方节点(第二节点)状态记录在该节点(第一节点)的配置文件中。具体的探测状态定义图如图3所示。

下面结合图1-图3对支付系统的节点状态探测方法进行详细介绍。

在上述步骤102中,在一个实施例中,将第一时长与预设的第二时长进行比较,根据比较结果确定第一节点的状态,可以包括:

若第一时长小于第二时长,则确定第一节点的节点状态为正常状态;

若第一节点超过预设的第二时长未收到探测回应报文时,确定第一节点的状态为故障状态。

具体实施时,第一节点接收探测回应报文的时间与发送探测请求报文的时间的差值具体可以为2秒,为了减小机器时间误差,收到应答报文时间-发送请求时间<2s时才更新。

在一个实施例中,若第一节点超过预设的第二时长未收到探测回应报文时,确定第一节点的状态为故障状态,可以包括:

若第一节点超过预设的第二时长未收到第二节点的探测回应报文,接收到第二节点的探测请求报文,确定第一节点的发送状态为故障状态,接收状态为正常状态;

若第一节点超过预设的第二时长未收到第二节点的探测回应报文和探测请求报文,确定第一节点的发送状态为故障状态,接收状态为故障状态。

在一个实施例中,在确定第一节点的状态为故障状态之后,还可以包括:

确定第一节点每第二预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第三时长;所述第二预设时间间隔大于第一预设时间间隔;

若第三时长小于第二时长,则确定第一节点的节点状态为正常状态;若第一节点超过预设的第二时长收到探测回应报文时,丢弃所述探测回应报文;

当第一节点和第二节点的状态从正常状态转到故障状态或从故障状态转到正常状态时,第一节点和第二节点向支付系统的监控系统发送状态改变通知报文。

具体实施时,从图3中可以看出探测状态的详细定义:

(1)节点a(第一节点)成功发送探测请求报文后,如果接收节点b(第二节点)的探测回应报文的时间与节点a发送探测请求报文时间差(第一时长)小于指定的超时时间(第二时长),则判断节点a(第一节点)的发送状态与接收状态均为正常,如图3中的(a)所示;

(2)如果节点a(第一节点)未收到节点b(第二节点)的探测回应报文,并且能够正常接收节点b(第二节点)的探测请求报文,则说明节点a(第一节点)发送状态故障,接收状态正常,如图3中的(b)所示;

(3)如果节点a(第一节点)未收到节点b(第二节点)的探测回应报文,并且不能够正常接收节点b(第二节点)的探测请求报文,则说明节点a(第一节点)的发送状态故障,接收状态故障,如图3中的(c)所示。

在图3中,探测申请报文,即为探测请求报文,在节点b向节点a发送探测请求报文(以及支付系统任一节点发送探测请求)时,确定节点b节点状态的方法如上述(1)-(3)以及附图3的方法一致。

下面再进行详细的的探测描述如下:

发送探测报文流程主要是向相邻节点定时发送991探测报文,并在规定的时间(第二时长)内接收到相邻节点发送的探测回应报文后,将相应的队列与队列管理器的状态置为正常;

当发送探测报文后,在超过指定的时间(第二时长)内未收到探测回应报文,则将队列状态及队列管理器状态置为故障状态;

当发现队列状态不可用(故障)后,加大探测时间间隔继续探测(在每第二预设时间间隔,第一节点向第二节点发送节点状态探测请求报文,第二预设时间间隔大于第一预设时间间隔);

接收到探测回应报文后的处理:正常接收时,更新队列状态为可用,同时更新负载系数等,若超时,丢弃该报文;

当节点从正常转到故障或从故障转到正常时,各节点将通过调用的方式主动通知监控系统。

具体实施时,节点探测基于本节点中的每一条队列进行,队列状态为正常、故障两种。

本发明实施例提供的节点状态探测方法的思路:节点监控代理程序启动后,每隔一定的时间间隔(第一预设时间间隔,可参数化配置),向指定的队列发送探测请求报文,在系统设置的超时时间(第二时长)内收到探测回应报文的,则认为该条链路状态正常;发送探测报文后,且在超时时间(第二时长)到达后检查上次发送的探测报文是否已经应答:若没有应答,标记队列状态为“故障”;此时应加大时间间隔继续探测(在每第二预设时间间隔,第一节点向第二节点发送节点状态探测请求报文,第二预设时间间隔大于第一预设时间间隔),直到链路状态恢复正常。探测流程时间间隔如图4所示,在图4中,超时时间即为第二时长,发送时间间隔即为第一预设时间间隔,故障后加大发送时间间隔即为第二预设时间间隔,上述第三时长可以是第一时长,也可以是根据实际需要重新配置的参数。

在一个实施例中,上述探测方法还可以包括:当第一节点的状态从故障状态转到正常状态时,触发第一节点的错误队列里的报文信息重新发送。

具体实施时,由于通道或环境异常,发送业务报文未成功,会将报文存储到mq(messagequeue,消息队列)的错误队列中,当链路恢复(经过上述探测方法发现链路恢复)时,探测机制会触发错误队列重新处理这些业务报文,提高报文转发的效率。

在一个实施例中,探测回应报文可以包括第二节点的状态和负载系数;第二节点的状态可以包括:第二节点的各服务器的连接状态,以及第二节点的每一远程队列的状态。

在一个实施例中,上述探测方法还可以包括:

将支付系统的各节点分为不同层级;

探测请求报文包括:第一节点的层级信息,以及第二节点待修改状态信息;

第二节点收到第一节点的探测请求报文时,检查第一节点的层级,如果第一节点的层级比第二节点的层级高,根据第二节点待修改状态信息,在第二节点端修改第二节点的状态。

具体实施时,为了人为控制各节点的状态,在pmts中引入了节点管理状态的概念,节点管理状态可由上级节点控制下级节点的状态。各类节点被分为不同的层级:如各层代理为10级,npc层级为20,ccpc层级为30,mbfe层级为50,数值越小,层级越高,以便于今后层级的扩展,节点的层级如图5所示,在图5中,npc的含义是国家处理中心,ccpca的含义是城市处理中心a,mbfea的含义是参与者a,mbfeb的含义是参与者b,20代表npc的层级,30代表ccpc(ccpca)的层级,50代表mbfea和mbfeb的层级,第一行箭头代表npc向ccpc发送节点状态探测请求报文,第二行箭头代表ccpc向mbfea发送节点状态探测请求报文。这些层级记录在每一节点中每一服务器的配置文件中,当相邻节点之间探测时,将相邻节点及其下级节点的管理状态组织到探测报文或探测回应报文中。当接收节点收到相应的报文时,检查发起节点的层级,若发起方的层级较当前层级高,则将管理节点的状态保存在共享内存中。当层级高的节点收到层级低的节点时,该域被忽略。这样就能够保证高层级的节点管理低层级的节点的管理状态,实现快速切换运行和软件升级,保证探测机制参数可配置,易于维护。

下面结合图6和图7再以实例来进行说明,以便于理解如何实施本发明。

下文提到的发送节点即为上文提到的第一节点,相邻节点、被管理节点、接收节点、应答节点即为上文提到的第二节点。

节点探测策略是通过定时发送探测请求报文给相邻节点,当相邻节点收到请求报文时,需立即回复探测回应报文给发送节点,发送节点根据对方返回的探测回应报文实时情况更新状态。

探测请求报文携带发送节点状态和被管理节点的状态,通知相邻节点同步更新接收节点到发送节点的服务器状态,如果该相邻节点是被管理节点,需要根据发送节点的要求,修改本节点(相邻节点)的状态。探测回应报文携带链路的负载系数和接收节点服务器接收状态返回给发送节点。当发送节点收到探测回应报文,首先确认是给自己的探测回应报文,然后确认收到的应答报文(探测回应报文)是否超时,如果超时丢弃应答报文(探测回应报文),如果未超时,更新发送节点到应答节点的发送状态,更新发送节点到应答节点负载系数,更新发送节点到应答节点的机器时间差(为了减小机器时间误差,收到应答报文时间-发送请求时间<2s时才更新),在发送节点端更新应答节点的服务器接收状态。

通过探测报文的一去一回(探测请求报文,探测回应报文),得到相邻节点状态,相邻节点的负载系数,和相邻节点的机器时间差。通过探测请求报文管理相邻节点,规则是高层级管理低层级,pmts部署在npc(国家处理中心)、ccpc(城市处理中心)、mbfe(参与者),层级号越小,层级级别越高,npc(层级号=20),ccpc(层级号=30),参与者(层级号=50)。npc管理ccpc,ccpc管理mbfe,反之不能被管理。

由于通道或环境异常,发送业务报文未成功,会将报文存储到mq的错误队列中,当链路恢复时,探测机制会触发错误队列重新处理这些业务报文,提高报文转发的效率。

探测参数可以包括正常探测状态下发送时间间隔(第一预设时间间隔),异常探测状态下的发送时间间隔(第二预设时间间隔),超时的时间(第二时长)。辅助参数包括相邻节点可配置(方便注册添加,删除节点),探测的远程队列名称,通道名称可配置。本发明实施例提供的上述第一预设时间间隔、第二预设时间间隔和第二时长可根据需要进行配置,这样通过参数化易于管理和日常维护。

另外,利用节点探测的方法来实现节点状态的更改:为了人为控制各节点的状态,在pmts中引入了节点管理状态的概念,节点管理状态可由上级节点控制下级节点的状态。各类节点被分为不同的层级:如各层代理为10级,npc层级为20,ccpc层级为30,mbfe层级为50,数值越小,层级越高,以便于今后层级的扩展,节点的层级如图5所示。这些层级记录在每一节点中每一服务器的配置文件中,当相邻节点之间探测时,将相邻节点及其下级节点的管理状态组织到探测报文或探测回应报文中。当接收节点收到相应的报文时,检查发起节点的层级,若发起方的层级较当前层级高,则将管理节点的状态保存在共享内存中。当层级高的节点收到层级低的节点时,该域被忽略。这样就能够保证高层级的节点管理低层级的节点的管理状态。

基于同一发明构思,本发明实施例中还提供了一种支付系统的节点状态探测装置,如下面的实施例所述。由于支付系统的节点状态探测装置解决问题的原理与支付系统的节点状态探测方法相似,因此支付系统的节点状态探测装置的实施可以参见支付系统的节点状态探测方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”指可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图8是本发明实施例中支付系统的节点状态探测装置的结构示意图,如图8所示,该装置包括:

第一时长确定模块10,用于确定第一节点每第一预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第一时长;

第一节点状态确定模块20,用于将第一时长与预设的第二时长进行比较,根据比较结果确定第一节点的状态;

第二节点状态确定模块30,用于根据所述探测回应报文,确定第二节点的状态。

在一个实施例中,第一节点状态确定模块可以包括:

第一节点状态正常确定模块,用于若第一时长小于第二时长,则确定第一节点的节点状态为正常状态;

第一节点状态故障确定模块,用于若第一节点超过预设的第二时长未收到探测回应报文时,确定第一节点的状态为故障状态。

在一个实施例中,第一节点状态故障确定模块具体可以用于:

若第一节点超过预设的第二时长未收到第二节点的探测回应报文,接收到第二节点的探测请求报文,确定第一节点的发送状态为故障状态,接收状态为正常状态;

若第一节点超过预设的第二时长未收到第二节点的探测回应报文和探测请求报文,确定第一节点的发送状态为故障状态,接收状态为故障状态。

在一个实施例中,第一节点状态故障确定模块还可以用于:

确定第一节点每第二预设时间间隔从发出对第二节点的状态探测请求报文直至接收第二节点的探测回应报文的第三时长;所述第二预设时间间隔大于第一预设时间间隔;

若第三时长小于第二时长,则确定第一节点的节点状态为正常状态;若第一节点超过预设的第二时长收到探测回应报文时,丢弃所述探测回应报文;

当第一节点和第二节点的状态从正常状态转到故障状态或从故障状态转到正常状态时,第一节点和第二节点向支付系统的监控系统发送状态改变通知报文。

在一个实施例中,上述探测装置还可以包括:

节点状态恢复模块,用于当第一节点的状态从故障状态转到正常状态时,触发第一节点的错误队列里的报文信息重新发送。

在一个实施例中,上述探测装置还可以包括:

层级划分模块,用于将支付系统的各节点分为不同层级;

探测请求报文包括:第一节点的层级信息,以及第二节点待修改状态信息;

节点状态管理模块,用于在第二节点收到第一节点的探测请求报文时,检查第一节点的层级,如果第一节点的层级比第二节点的层级高,根据第二节点待修改状态信息,在第二节点端修改第二节点的状态。

本发明实施例还提供了一种计算机设备,用以探测支付系统各节点的状态,为支付系统报文转发提供高可用的路由通道,该计算机设备可以包括:

存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上的支付系统的节点状态探测方法。

本发明实施例还提供了一种计算机可读存储介质,用以探测支付系统各节点的状态,为支付系统报文转发提供高可用的路由通道,该计算机可读存储介质存储有执行如上的支付系统的节点状态探测方法的计算机程序。

本发明实施例达到了如下有益技术效果:本发明实施例提供的技术方案,基于socket接口技术,用于实现相邻节点甚至是整个pmts网络中节点状态的安全、快速、可靠的节点探测策略。通过该探测策略,在发送报文前获得相邻节点的状态,为发送业务报文提供更多通道选择,探测参数、节点增加与删除,层级状态可以通过参数化配置,更方便管理。保证了支付系统间报文传输的快速、安全、可靠,为国家二代支付系统稳定运行提供了必要的前提,具有非常重大的现实意义。

显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1