CN114422398B - 一种事务节点异常识别系统、方法及装置 - Google Patents

一种事务节点异常识别系统、方法及装置 Download PDF

Info

Publication number
CN114422398B
CN114422398B CN202111623028.7A CN202111623028A CN114422398B CN 114422398 B CN114422398 B CN 114422398B CN 202111623028 A CN202111623028 A CN 202111623028A CN 114422398 B CN114422398 B CN 114422398B
Authority
CN
China
Prior art keywords
transaction
client
transaction node
server
node
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
Application number
CN202111623028.7A
Other languages
English (en)
Other versions
CN114422398A (zh
Inventor
周凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202111623028.7A priority Critical patent/CN114422398B/zh
Publication of CN114422398A publication Critical patent/CN114422398A/zh
Application granted granted Critical
Publication of CN114422398B publication Critical patent/CN114422398B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种事务节点异常识别系统、方法及装置,应用于数据处理技术领域,系统包括:第一客户端、第二客户端、服务端。第一客户端向服务端发送所述第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻,生成事务标识。第一客户端获取表示第一事务节点的数据处理情况的处理信息,选择服务端发送所获取的处理信息,并向第二客户端发送事务标识。第二客户端接收第一客户端发送的事务标识,获取表示第二事务节点的处理信息,选择服务端发送所获取的处理信息。服务端基于所接收到的处理信息,确定处理信息表示的事务节点是否发生异常。应用本发明实施例提供的方案可以对事务节点的异常进行识别。

Description

一种事务节点异常识别系统、方法及装置
技术领域
本发明涉及数据处理技术领域,特别是涉及一种事务节点异常识别方法及装置。
背景技术
按照固定的顺序,采用软件系统中包含的不同模块依次对数据进行处理,可以实现软件系统设定的功能,其中,软件系统对数据进行处理的过程可以被称为一个事务,软件系统中包含的各个模块可以被称为事务中各个事务节点。不同的事务节点可以部署于同一电子设备中,也可以部署于不同的电子设备中。
例如,可以采用软件系统实现话费计算的功能,软件系统中可以包含对用于数据进行预处理的数据格式化模块、用于计算用户已使用话费的话费批价模块、用于计算优惠金额的优惠计算模块、用于计算用户话费余额的余额计算模块等,以上各个模块均可以被称为事务节点。软件系统通过各个模块核算话费的过程可以被称为话费核算事务。
在进行数据处理的过程中,事务节点可能会发生异常,从而发生事务处理中断,或影响后续事务节点的数据处理从而输出错误的结果等各类问题。为了防止上述问题发生,需要对事务节点的异常进行识别。
发明内容
本发明实施例的目的在于提供一种事务节点异常识别系统、方法及装置,以对事务节点的异常进行识别。具体技术方案如下:
第一方面,本发明实施例提供了一种事务异常识别系统,上述系统包括:多个客户端与多个服务端,所述客户端包括:一个第一客户端以及一个或多个第二客户端,所述客户端与服务端均为软件模块,每一客户端监听一个事务节点,各个客户端监听的事务节点共同完成一个事务处理流程;
所述第一客户端,用于在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序;
所述服务端,用于基于所述客户端标识与生成事务标识的时刻,生成事务标识,向所述第一客户端发送所述事务标识;
所述第一客户端,还用于向所述第二客户端发送所述事务标识;监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;
所述第二客户端,用于监听自身对应的第二事务节点,并获取表示所述第二事务节点的数据处理情况的处理信息;基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;其中,所述第二事务节点为:在所述预设处理顺序中、除所述第一事务节点之外的事务节点;
所述服务端,用于基于所接收到的处理信息,确定所述处理信息表示的事务节点是否发生异常。
第二方面,本发明实施例提供了一种事务异常识别方法,应用于第一客户端,所述第一客户端为软件模块,所述方法包括:
在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,以使得所述服务端基于所述客户端标识与生成事务标识的时刻,生成并向所述第一客户端发送事务标识;其中,所述服务端为软件模块,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序;
获取所述事务标识,并向第二客户端发送所述事务标识,其中,所述第二客户端为软件模块,用于监听所述预设处理顺序中除所述第一事务节点之外的其他事务节点;
监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息;
基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第一事务节点是否发生异常。
第三方面,本发明实施例提供了一种事务异常识别方法,应用于第二客户端,所述第二客户端为软件模块,所述方法包括:
获取第一客户端发送的事务标识,其中,所述第一客户端为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序,所述事务标识是:基于所述第一客户端的客户端标识以及生成事务标识的时刻生成的;
监听自身对应的第二事务节点,其中,所述第二事务节点为:在预设处理顺序中、除所述第一事务节点之外的事务节点;
获取表示所述第二事务节点的数据处理情况的处理信息;
基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第二事务节点是否发生异常,其中,所述服务端为软件模块。
第四方面,本发明实施例提供了一种事务异常识别方法,应用于第三客户端,所述第三客户端为软件模块,所述方法包括:
监听第三事务节点,获取第三事务节点的注册信息,其中,所述注册信息表示:所述第三事务节点初始化其他事务节点的情况;
生成第一客户端的客户端标识,其中,所述第一客户端为软件模块、且用于监听第一事务节点,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序;
向服务端发送所获取的注册信息,以使得所述服务端基于所述注册信息确定所述第三事务节点是否发生异常,所述服务端为软件模块。
第五方面,本发明实施例提供了一种事务异常识别方法,应用于服务端,所述服务端为软件模块,所述方法包括:
在接收到第一客户端发送的客户端标识后,基于所述客户端标识与生成事务标识的时刻,生成事务标识,其中,所述第一客户端为软件模块、且用于监听第一事务节点,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序;
向所述第一客户端发送所述事务标识;
接收客户端发送的处理信息,确定所述处理信息表示的事务节点是否发生异常。
第六方面,本发明实施例提供了一种事务异常识别装置,应用于第一客户端,所述第一客户端为软件模块,所述装置包括:
客户端标识发送模块,用于在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,以使得所述服务端基于所述客户端标识与生成事务标识的时刻,生成并向所述第一客户端发送事务标识;其中,所述服务端为软件模块,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序;
第一标识发送模块,用于获取所述事务标识,并向第二客户端发送所述事务标识,其中,所述第二客户端为软件模块,用于监听所述预设处理顺序中除所述第一事务节点之外的其他事务节点;
第一信息获取模块,用于监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息;
第一信息发送模块,用于基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第一事务节点是否发生异常。
第七方面,本发明实施例提供了一种事务异常识别装置,应用于第二客户端,所述第二客户端为软件模块,所述装置包括:
事务标识获取模块,用于获取第一客户端发送的事务标识,其中,所述第一客户端为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序,所述事务标识是:基于所述第一客户端的客户端标识以及生成事务标识的时刻生成的;
节点监听模块,用于监听自身对应的第二事务节点,其中,所述第二事务节点为:在预设处理顺序中、除所述第一事务节点之外的事务节点;
第二信息获取模块,用于获取表示所述第二事务节点的数据处理情况的处理信息;
第二信息发送模块,用于基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第二事务节点是否发生异常,其中,所述服务端为软件模块。
第八方面,本发明实施例提供了一种事务异常识别装置,应用于第三客户端,所述第三客户端为软件模块,所述装置包括:
第三信息获取模块,用于监听第三事务节点,获取第三事务节点的注册信息,其中,所述注册信息表示:所述第三事务节点初始化其他事务节点的情况;
客户端标识生成模块,用于生成第一客户端的客户端标识,其中,所述第一客户端为软件模块、且用于监听第一事务节点,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序;
第三信息发送模块,用于向服务端发送所获取的注册信息,以使得所述服务端基于所述注册信息确定所述第三事务节点是否发生异常,所述服务端为软件模块。
第九方面,本发明实施例提供了一种事务异常识别装置,应用于服务端,所述服务端为软件模块,所述装置包括:
事务标识生成模块,用于在接收到第一客户端发送的客户端标识后,基于所述客户端标识与生成事务标识的时刻,生成事务标识,其中,所述第一客户端为软件模块、且用于监听第一事务节点,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序;
第二标识发送模块,用于向所述第一客户端发送所述事务标识;
第一异常确定模块,用于接收客户端发送的处理信息,确定所述处理信息表示的事务节点是否发生异常。
第十方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第二方面、第三方面、第四方面、第五方面任一所述的方法步骤。
第十一方面,一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面、第三方面、第四方面、第五方面任一所述的方法步骤。
第十二方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面、第三方面、第四方面、第五方面任一所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供了一种事务异常识别系统,上述系统包括:多个客户端与多个服务端,客户端包括:一个第一客户端以及一个或多个第二客户端。第一客户端在确定所监听的第一事务节点进行数据处理时,向服务端发送第一客户端的客户端标识;服务端基于客户端标识生成事务标识,第一客户端接收到事务标识后向各个第二客户端发送事务标识。第一客户端监听第一事务节点,获取表示第一事务节点的数据处理情况的处理信息。并且,第二客户端监听自身对应的第二事务节点,并获取表示第二事务节点的数据处理情况的处理信息。第一客户端与第二客户端均向服务端发送处理信息,服务端基于所接收到的处理信息,确定处理信息表示的事务节点是否发生异常。
由以上可见,事务处理过程中涉及的每一事务节点均对应一个不同的客户端,客户端用于对该事务节点进行监听,获取事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别事务节点是否发生异常。客户端对事务节点进行监听不会影响事务节点正常的数据处理,因此通过本发明实施例提供的方案确定事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中事务节点与客户端以及服务端分别独立运行,被检测的事务节点以及用于检测的客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同。第一客户端将事务标识发送至各个第二客户端,使得用于监听同一事务处理过程中涉及的各个事务节点的客户端均能够获取到该事务处理过程的事务标识,从而基于该事务标识将各个事务节点的处理信息发送到同一服务端,由同一服务端统一实现各个事务节点的异常识别过程,便于服务端对一个完整的事务处理过程进行统一的管理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种事务异常识别系统的结构示意图;
图2为本发明实施例提供的一种事务树的结构示意图;
图3为本发明实施例提供的第一种事务异常识别方法的流程示意图;
图4A为本发明实施例提供的第二种事务异常识别系统的结构示意图;
图4B为本发明实施例提供的第二种事务异常识别方法的流程示意图;
图5为本发明实施例提供的第三种事务异常识别方法的流程示意图;
图6为本发明实施例提供的第四种事务异常识别方法的流程示意图;
图7为本发明实施例提供的第五种事务异常识别方法的流程示意图;
图8为本发明实施例提供的第六种事务异常识别方法的流程示意图;
图9为本发明实施例提供的第七种事务异常识别方法的流程示意图;
图10为本发明实施例提供的第一种事务异常识别装置的结构示意图;
图11为本发明实施例提供的第二种事务异常识别装置的结构示意图;
图12为本发明实施例提供的第三种事务异常识别装置的结构示意图;
图13为本发明实施例提供的第四种事务异常识别装置的结构示意图;
图14为本发明实施例提供的第一种电子设备的结构示意图;
图15为本发明实施例提供的第二种电子设备的结构示意图;
图16为本发明实施例提供的第三种电子设备的结构示意图;
图17为本发明实施例提供的第四种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中事务处理过程涉及的事务节点可能会发生异常,为了对事务处理节点的异常进行识别,本发明实施例提供了一种一种事务异常识别系统、方法及装置。
本发明实施例提供了一种事务异常识别系统,上述系统包括:多个客户端与多个服务端,上述客户端包括:一个第一客户端以及一个或多个第二客户端,上述客户端与服务端均为软件模块,每一客户端监听一个事务节点,各个客户端监听的事务节点共同完成一个事务处理流程;
上述第一客户端,用于在确定所监听的第一事务节点进行数据处理时,向服务端发送上述第一客户端的客户端标识,上述第一事务节点为:在预设处理顺序中位于首位的事务节点,上述预设处理顺序为:预设的、各个事务节点处理数据的顺序;
上述服务端,用于基于上述客户端标识与生成事务标识的时刻,生成事务标识,向上述第一客户端发送上述事务标识;
上述第一客户端,还用于向上述第二客户端发送上述事务标识;监听上述第一事务节点,获取表示上述第一事务节点的数据处理情况的处理信息,基于上述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;
上述第二客户端,用于监听自身对应的第二事务节点,并获取表示上述第二事务节点的数据处理情况的处理信息;基于上述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;其中,上述第二事务节点为:在上述预设处理顺序中、除上述第一事务节点之外的事务节点;
上述服务端,用于基于所接收到的处理信息,确定上述处理信息表示的事务节点是否发生异常。
由以上可见,事务处理过程中涉及的每一事务节点均对应一个不同的客户端,客户端用于对该事务节点进行监听,获取事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别事务节点是否发生异常。客户端对事务节点进行监听不会影响事务节点正常的数据处理,因此通过本发明实施例提供的方案确定事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中事务节点与客户端以及服务端分别独立运行,被检测的事务节点以及用于检测的客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同。第一客户端将事务标识发送至各个第二客户端,使得用于监听同一事务处理过程中涉及的各个事务节点的客户端均能够获取到该事务处理过程的事务标识,从而基于该事务标识将各个事务节点的处理信息发送到同一服务端,由同一服务端统一实现各个事务节点的异常识别过程,便于服务端对一个完整的事务处理过程进行统一的管理。
参见图1,为本发明实施例提供的第一种事务异常识别系统的结构示意图。上述系统包括:多个客户端与多个服务端103,上述客户端包括:一个第一客户端101以及一个或多个第二客户端102,在本图中以一个第二客户端102表示,上述客户端与服务端103均为软件模块。
具体的,每一客户端用于监听一个事务节点,各个客户端监听的事务节点共同完成一个事务处理流程。每一客户端与自身监听的一个事务节点运行于同一电子设备中,不同事务节点可以运行于同一电子设备中,也可以运行于不同电子设备中。上述服务端103与客户端运行于不同的电子设备中,例如,服务端103可以运行于服务器中,多个服务端103可以运行于同一电子设备中,也可以运行于同一电子设备中。
另外,在运行本发明实施例之前,各个服务端103中可以预先注册有各个客户端,服务端可以对预先注册的客户端发送的信息进行处理。
再者,各个服务端103中还可以记录有各个客户端对应的事务节点在进行事务处理的过程中处理数据的前后顺序。
具体的,上述顺序可以以事务树的形式存储,事务树中的每一节点对应一个事务节点。彼此之间指针相连的节点对应的事务节点在上述顺序中相邻,在上述顺序中,位于指针头的节点对应的事务节点在位于指针尾的节点对应的事务节点之前。
本发明实施例的一个应用场景中,上述事务节点可以共同用于完成话费核算事务,上述事务节点可以包含数据格式化节点、话费批价节点、优惠计算节点、余额计算节点等。
数据格式化节点可以用于实现计费事件统计等功能,在本事务节点中可能出现计费事件统计错误等异常。
话费批价节点可以用于实现匹配用户购买的套餐、确定用户购买的套餐中包含的权益、确定每一计费事件对应的计费金额等功能,在事务节点中可能出现套餐匹配错误、权益确定错误、计费金额确定错误等异常。
优惠计算节点可以用于实现匹配用户拥有的优惠权益、确定优惠权益对应的优惠额度等功能,在优惠结算节点中可能出现优惠权益匹配错误、优惠额度计算错误等异常。
余额计算节点可以用于实现获取用户已用话费金额、余额计算、余额写入记录等功能,在余额计算节点中可能话费余额获取失败、余额计算失败、余额写入失败等异常。
参见图2,为本发明实施例提供的一种事务树的结构示意图。
图中节点1-节点5分别对应事务节点1-事务节点5,节点1与节点2指针相连,表示存在一个事务节点的处理顺序,其中事务节点1在事务节点2之前,节点1与节点5指针相邻,表示存在另一个事务节点的处理顺序,其中事务节点1在事务节点5之前。
从上述事务树的根节点到每一叶子节点的路径均可以表示一个事务节点的数据处理顺序。
例如,如图2所示,节点1-节点3的路径表示事务节点1-事务节点2-事务节点3的数据处理顺序,节点1-节点4的路径表示事务节点1-事务节点2-事务节点4的数据处理顺序。
参见图3,为本发明实施例提供的第一种事务异常识别方法的流程示意图。
具体的,若该系统中包含多个第二客户端102,多个第二客户端102执行的步骤相同,本图中仅以一个第二客户端102作为示例,对第二客户端102执行的步骤以及其他模块与第二客户端之间的数据交互过程进行描述。
S301:上述第一客户端101在确定所监听的第一事务节点进行数据处理时,向服务端103发送上述第一客户端101的客户端标识。
其中,上述第一事务节点为:在预设处理顺序中位于首位的事务节点,上述预设处理顺序为:预设的、各个事务节点处理数据的顺序。
具体的,上述第一客户端101可以以libevent模式监听上述第一事务节点。首先绑定socket端口,在第一事务节点开始进行数据处理后,可以为新的连接生成一个文件描述符,第一客户端101中包含的监听线程可以基于上述文件描述符对第一事务节点进行监听。
另外,第一事务节点可以预先注册于第一客户端101中,第一客户端101仅对已注册的事务节点进行监听,若获取到未注册事务节点的信息,第一客户端101可以丢弃上述信息。
再者,不同客户端的客户端标识不同,上述客户端标识可以以二进制数的形式表示,例如,上述客户端标识的长度可以为15bit,可以表示32768个不同的客户端。
本发明的一个实施例中,第一客户端101的客户端标识可以是预先设置的。
本发明的另一个实施例中,第一客户端101的客户端标识也可以是用于初始化上述第一客户端101与第二客户端102的第三客户端生成的,具体的,可参见下文步骤S313,在此暂不详述。
此外,第一客户端101可以向任意服务端103发送上述客户端标识,也可以向预设的服务端103发送上述客户端标识,本实施例对此不进行限定。
S302:上述服务端103基于上述客户端标识与生成事务标识的时刻,生成事务标识,向上述第一客户端101发送上述事务标识。
其中,可以将生成事务标识的时刻与客户端标识合并,得到事务标识。生成事务标识的时刻与客户端标识均可以以二进制数的形式表示,可以将两组二进制数合并得到一组二进制数,作为事务标识。
具体的,上述生成事务标识的时刻的单位可以为毫秒,表示上述时刻的长度可以为38bit,该二进制数可以表示的总时长约为8.7年。
除了客户端标识与生成事务标识的时刻之外,还可以基于客户端与服务端之间交互信息时使用的路由版本的路由版本号以及随机生成的序列号共同生成事务标识。上述第一客户端101可以从ZK系统中读取上述路由版本号,并将路由版本号上传至服务端103,使得服务端103能够获取到上述路由版本号。
具体的,可以将上述路由版本号、生成事务标识的时刻、客户端标识、序列号按顺序合并生成上述事务标识。上述路由版本、生成事务标识的时刻、客户端标识、序列号均可以以二进制数的形式表示,将四组二进制数合并得到一组二进制数,作为事务标识。
其中,上述路由版本号的长度可以为4bit,可以表示16种不同的路由版本号。上述序列号的长度可以为7bit,表示128种不同的序列号。理论上1ms可以产生128个不同序列号,一个客户端生成序列号的速率理论为128*1000=12.8w/s。
S303:上述第一客户端101向上述第二客户端102发送上述事务标识。
S304:上述第一客户端101监听上述第一事务节点,获取表示上述第一事务节点的数据处理情况的处理信息。
本发明的一个实施例中,第一客户端101与第一事务节点之间可以通过IPC(Internet Process Connection,网络进程连接)进行通信,则第一客户端101可以通过IPC获取第一事务节点的处理信息。
其中,上述处理信息中包含第一事务节点进行数据处理的时间、第一事务节点所在进程编号、进行数据处理的线程编号、表示数据处理是否成功的信息、数据处理过程中缺失数据的类型、数据处理过程中读写失败的数据类型等。
具体的,在获取到上述处理信息后,第一客户端101可以对上述处理信息进行鉴权,确定上述处理信息的完整性,并确定上述处理信息是否有误,若处理信息通过鉴权再执行后续过程,否则可以丢弃上述处理信息。
本发明的一个实施例中,上述第一客户端101可以将所获取的处理信息存储于ZK系统的循环消息队列中,循环消息队列会以先进先出的方式调度处理信息,一条处理信息在循环消息队列中的最长存储时长为预设存储时长,存储时长超过预设存储时长的处理信息会从循环消息队列中删除。
S305:上述第一客户端101基于上述事务标识选择服务端103,向所选择的服务端103发送所获取的处理信息。
具体的,可以预先设置第一客户端101与服务端103之间的对应关系,则第一客户端101可以选择与自身存在对应关系的服务端103,并向该服务端103发送处理信息。
其中,第一客户端101中包含的信息发送子模块可以从ZK系统中获取处理信息,并向服务端103发送处理信息。
另外,在事件标识以二进制数的形式表示的情况下,第一客户端101也可以通过以下步骤A-步骤B,选择服务端103。
步骤A:以上述事件标识为被除数,以服务端103管理的、用于存储处理信息的槽位的总数为被除数,进行取模计算。
具体的,上述槽位的总数为已知量,例如,上述槽位的总数可以为16384个,每一槽位可以存储一个处理信息。
各个槽位可以均分至各个服务端103,每一服务端103可以管理分配至自身的槽位,使用该槽位存储自身接收到的处理信息。
步骤B:基于计算结果,选择服务端103。
具体的,上述计算结果可以作为用于存储上述处理信息的槽位的编号,则可以选择管理该编号的槽位的服务端103,作为接收上述处理信息的服务端103。
S306:上述第二客户端102监听自身对应的第二事务节点,并获取表示上述第二事务节点的数据处理情况的处理信息。
其中,上述第二事务节点为:在上述预设处理顺序中、除上述第一事务节点之外的事务节点。
具体的,第二客户端102监听自身对应的第二事务节点的方式与第一客户端101监听第一事务节点的方式相似,第二事务节点的处理信息与第一事务节点的处理信息也相似,在此不再赘述。
本发明实施例中可以存在多个第二事务节点,也就存在多个与第二事务节点一一对应的第二客户端102。各个客户端执行的步骤相同,区别仅为不同客户端监听的事务节点不同,在此不再详述。
S307:上述第二客户端102基于上述事务标识选择服务端103,向所选择的服务端103发送所获取的处理信息。
其中,第二客户端102与第一客户端101采用相同的方式选择服务端103,并且第二客户端102从第二事务节点处获取的事务标识与前述步骤中第一客户端101发送至第一事务节点的事务标识相同,因此第一客户端101选择的服务端103与第二客户端102选择的服务端103相同。
具体的,第二客户端102选择服务端103的方式可以参见前述第一客户端101选择服务端103的方式,在此不再赘述。
S308:上述服务端103基于所接收到的处理信息,确定上述处理信息表示的事务节点是否发生异常。
其中,上述处理信息包含第一客户端101发送的、表示第一事务节点的处理信息,以及第二客户端102发送的、表示第二事务节点的处理信息。
在接收到处理信息之后,可以将处理信息存储于内存中包含的槽位中,具体的,可以以mmap方式将处理信息存储于内存,mmap方式为现有技术,在此不再赘述。
具体的,上述服务端103基于预设业务规则判断事务节点是否发生异常。例如,上述服务端103可以读取上述处理信息中包含的表示数据处理是否成功的信息,若数据处理失败,则可以确定该事务节点发生异常。
也可以读取处理信息,确定处理信息内是否包含数据处理过程中缺失数据的类型,若存在,则确定事务节点发生数据缺失的问题,认为该事务节点发生异常。
还可以读取处理信息,确定处理信息中是否包含数据处理过程中读写失败的数据类型,若存在,则确定事务节点发生数据读写失败的问题,可以认为该事务节点发生异常。
另外,若事务节点长时间未完成数据处理,可以认为事务节点发生异常。因此也可以基于以下步骤C-步骤D确定上述处理信息表示的事务节点是否发生异常。
步骤C:基于接收到上述处理信息的时刻与预设超时时长,计算产生上述处理信息的目标事务节点的超时时刻。
具体的,针对不同的事务节点,预设超时时长可以不同。
在接收到上述处理信息后,可以计算接收到上述处理信息的时刻与预设超时时长之和,得到目标事务节点的超时时刻。
在计算得到超时时刻之后,可以将超时时刻记录于时间轮中,上述时间轮为双向循环链表,上述链表中的每一节点对应一个目标事务节点,记录有该目标事务节点的超时时刻。
另外,可以将不同目标事务节点的超时时刻记录于不同的时间轮中。例如,可以将所对应的预设超时时长小于等于第一预设时长的目标事务节点的超时时刻记录于一个时间轮中,将所对应的预设超时时长大于第一预设时长,小于第二预设时长的目标事务节点的超时时刻记录于另一个时间轮中。
例如,上述第一预设时长可以为256ms,第二预设时长可以为16384ms。
再者,可以将目标事务节点在产生处理信息时的事务标识作为key值,将目标事务节点对应的节点在时间轮中的地址作为value值,将目标事务节点对应的节点在时间轮中的地址添加至超时时刻表中。则基于事务标识查找超时时刻表,便可以查找到事务标识表示的事务处理过程涉及的各个事务节点的超时时刻。
步骤D:若上述目标事务节点在上述超时时刻未完成数据处理,则确定上述目标事务节点发生异常。
具体的,客户端可以持续监听目标事务节点,在目标事务节点完成数据处理时向服务端103发送处理结束消息,使得服务端103确定目标事务节点完成数据处理,若在超时时刻前未完成数据处理,则确定目标事务节点发生异常。
本发明的一个实施例中,可以基于事务标识查找超时时刻表,确定目标事务节点对应的节点在时间轮中的地址,再基于上述地址访问时间轮,获取其中记录的超时时刻。
由以上可见,事务处理过程中涉及的每一事务节点均对应一个不同的客户端,客户端用于对该事务节点进行监听,获取事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别事务节点是否发生异常。客户端对事务节点进行监听不会影响事务节点正常的数据处理,因此通过本发明实施例提供的方案确定事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中事务节点与客户端以及服务端分别独立运行,被检测的事务节点以及用于检测的客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同。第一客户端将事务标识发送至各个第二客户端,使得用于监听同一事务处理过程中涉及的各个事务节点的客户端均能够获取到该事务处理过程的事务标识,从而基于该事务标识将各个事务节点的处理信息发送到同一服务端,由同一服务端统一实现各个事务节点的异常识别过程,便于服务端对一个完整的事务处理过程进行统一的管理。
本发明的另一个实施例中,上述服务端103在接收到处理信息之后,还可以向发送上述处理信息的客户端发送表示上述服务端接收到上述处理信息的信息应答。
上述客户端在向上述服务端103发送处理信息之后、预设时长内未接收到信息应答的情况下,缓存所发送的处理信息。
其中,客户端可以从向服务端103发送处理信息开始计时,若计时达到预设时长的时长之后还未接收到信息应答,可能是客户端与服务端103之间的数据传输故障,或者服务端103故障,则客户端可以确定服务端103未接收到处理信息,则客户端可以缓存上述处理信息,防止处理信息丢失,从而可以在故障解除后重新判断事务节点是否发生异常。
具体的,客户端可以通过多线程将处理信息写入缓存,并通过单线程读取已缓存的处理信息。
本发明的又一个实施例中,服务端103在接收到处理信息之后,还可以将处理信息存储于磁盘中。以使得后续工作人员可以获取处理信息,确定事务处理过程中各个事务节点的数据处理情况。
参见图4A,为本发明实施例提供的第二种事务异常识别系统的结构示意图。与前述图1所示的实施例相比,上述客户端中还包括第三客户端104,第三客户端104与第一客户端101运行于同一电子设备中。
参见图4B,为本发明实施例提供的第二种事务异常识别方法的流程示意图
S309:上述第三客户端104监听第三事务节点,获取注册信息。
其中,上述注册信息表示:上述第三事务节点初始化上述第一事务节点与第二事务节点的情况。
具体的,第三事务节点用于注册并初始化上述第一事务节点与第二事务节点,完成对第一事务节点与第二事务节点的配置。
另外,第三客户端104监听第三事务节点的过程与第一客户端101监听第一事务节点的过程相似,在此不再赘述。
S310:上述第三客户端104生成上述第一客户端101的客户端标识。
具体的,所生成的客户端标识可以为15bit的二进制数,则客户端标识可以存在32768种不同的取值,第三客户端可以记录已经为客户端分配过的客户端标识的取值,从未被分配过的客户端标识的取值中选择任意一个分配至第一客户端101。
S311:上述第三客户端104向上述第一客户端101发送上述客户端标识。
具体的,第一客户端101与第三客户端104之间可以基于IPC传输客户端标识。
S312:上述第三客户端104向服务端103发送所获取的注册信息。
其中,上述注册消息包含第一客户端101与第二客户端102的IP地址、所处进程编号、所包含的子模块等信息。
S313:上述服务端103基于上述注册信息,确定上述第三事务节点是否发生异常。
具体的,服务端103获取到注册信息后,同样可以将注册信息存储于槽位中。
另外,基于注册信息判断第三事务节点是否发生异常的方式,与基于处理信息判断事务节点是否发生异常的方式相似,在此不再赘述。
由以上可见,第三事务节点用于初始化并注册第一事务节点与第二事务节点,在第三事务节点正常运行的情况下,第一事务节点与第二事务节点才能够正常的进行数据处理。但第三事务节点也有可能发生异常,影响第一事务节点与第二事务节点顺利初始化,因此也可以对第三事务节点进行监听,通过监听得到的注册信息判断第三事务节点是否发生异常。
参见图5,为本发明实施例提供的第三种事务异常识别方法的流程示意图,与前述图3所示的实施例相比,上述服务端103还执行以下步骤S314。
S314:上述服务端103在确定上述处理信息表示的事务节点发生异常的情况下,向该事务节点发送携带异常类型的补偿处理指令,以指示该事务节点进行预设的、与上述异常类型相对应的补偿处理。
其中,上述异常类型为:该事务节点所发生的异常的类型。
具体的,事务节点发生不同类型的异常的原因不同,针对不同类型的异常可以采用不同的补偿方式进行补偿处理。事务节点在接收到补偿处理指令之后可以重新进行一次自身需要执行的数据处理过程,再将数据处理结果发送至预设处理顺序中位于该事务节点之后的下一事务节点处,继续完成事务处理的过程。
例如,以前述话费核算事务为例,若话费批价节点发生异常的异常类型为套餐匹配错误,则服务端103可以指示话费批价节点从记录所有用户的套餐数据的全量数据库中重新匹配套餐。若优惠计算节点发生异常的异常类型为优惠额度计算错误,则服务端103可以指示优惠计算节点重新计算优惠额度。若余额计算节点发生的异常的异常类型为话费余额获取失败,则可以服务端103可以指示余额计算节点从记录所有用户的余额数据的全量数据库中重新查找用户话费余额。
由以上可见,在服务端确定事务节点发生异常后,可以向事务节点发送补偿处理指令,以指示事务节点进行预设的补偿处理,补偿事务节点发生的异常,从而可以在无需认为干预的情况下完成事务节点的异常处理过程,异常处理的效率较高。
与前述事务异常识别系统相对应,本发明实施例还提供了一种应用于第一客户端的
参见图6,为本发明实施例提供的第四种事务异常识别方法的流程示意图,应用于第一客户端,上述第一客户端为软件模块,上述方法包括以下步骤S601-S604。
S601:在确定所监听的第一事务节点进行数据处理时,向服务端发送上述第一客户端的客户端标识,以使得上述服务端基于上述客户端标识与生成事务标识的时刻,生成并向上述第一客户端发送事务标识。
其中,上述服务端为软件模块,上述第一事务节点为:在预设处理顺序中位于首位的事务节点,上述预设处理顺序为:预设的、各个事务节点处理数据的顺序。
S602:获取上述事务标识,并向第二客户端发送上述事务标识。
其中,上述第二客户端为软件模块,用于监听上述预设处理顺序中除上述第一事务节点之外的其他事务节点。
S603:监听上述第一事务节点,获取表示上述第一事务节点的数据处理情况的处理信息。
S604:基于上述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得上述服务端基于上述处理信息,确定上述第一事务节点是否发生异常。
由以上可见,第一客户端用于对第一事务节点进行监听,获取第一事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第一事务节点是否发生异常。第一客户端对第一事务节点进行监听不会影响第一事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第一事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第一事务节点与第一客户端以及服务端分别独立运行,被检测的第一事务节点以及用于检测的第一客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同。第一客户端向第二客户端发送事务标识,使得用于对同一事务处理过程中涉及的各个事务节点进行监听的客户端均能够获取到该事务处理过程的事务标识,便于服务端对一个完整的事务处理过程进行统一的管理。
本发明的一个实施例中,上述基于上述事务标识选择服务端,包括:
以上述事件标识为被除数,以服务端管理的、用于存储处理信息的槽位的总数为被除数,进行取模计算;
基于计算结果,选择服务端。
本发明的一个实施例中,在上述向所选择的服务端发送所获取的处理信息之后,还包括:
若向所选择的服务端发送处理信息之后、预设时长内未接收到针对上述处理信息的信息应答,缓存所发送的处理信息。
由以上可见,若计时达到预设时长的时长之后还未接收到信息应答,可能是第一客户端与服务端之间的数据传输故障,或者服务端故障,则第一客户端可以确定服务端未接收到处理信息,则第一客户端可以缓存上述处理信息,防止处理信息丢失,从而可以在故障解除后重新判断事务节点是否发生异常。
与前述事务异常识别系统相对应,本发明实施例还提供了一种应用于第二客户端的事务异常识别方法。
参见图7,为本发明实施例提供的第五种事务异常识别方法的流程示意图,应用于第二客户端,上述第二客户端为软件模块,上述方法包括:以下步骤S701-S704。
S701:获取第一客户端发送的事务标识。
其中,上述第一客户端为:在预设处理顺序中位于首位的事务节点,上述预设处理顺序为:预设的、各个事务节点处理数据的顺序,上述事务标识是:基于上述第一客户端的客户端标识以及生成事务标识的时刻生成的。
S702:监听自身对应的第二事务节点。
其中,上述第二事务节点为:在预设处理顺序中、除上述第一事务节点之外的事务节点。
S703:获取表示上述第二事务节点的数据处理情况的处理信息,以及上述第二事务节点接收到的事务标识。
S704:基于上述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得上述服务端基于上述处理信息,确定上述第二事务节点是否发生异常。
其中,上述服务端为软件模块。
由以上可见,第二客户端用于对第二事务节点进行监听,获取第二事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第二事务节点是否发生异常。第二客户端对第二事务节点进行监听不会影响第二事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第二事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第二事务节点与第二客户端以及服务端分别独立运行,被检测的第二事务节点以及用于检测的第二客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
本发明的一个实施例中,上述基于所述事务标识选择服务端,包括:
以上述事件标识为被除数,以服务端管理的、用于存储处理信息的槽位的总数为被除数,进行取模计算;
基于计算结果,选择服务端。
本发明的一个实施例中,在上述向所选择的服务端发送所获取的处理信息之后,还包括:
若向上述服务端发送处理信息之后、预设时长内未接收到针对上述处理信息的信息应答,缓存所发送的处理信息。
由以上可见,若计时达到预设时长的时长之后还未接收到信息应答,可能是第二客户端与服务端之间的数据传输故障,或者服务端故障,则第二客户端可以确定服务端未接收到处理信息,则第二客户端可以缓存上述处理信息,防止处理信息丢失,从而可以在故障解除后重新判断事务节点是否发生异常。
与前述事务异常识别系统相对应,本发明实施例还提供了一种应用于第三客户端的事务异常识别方法。
参见图8,本发明实施例提供了第六种事务异常识别方法的流程示意图,应用于第三客户端,上述第三客户端为软件模块,上述方法包括以下步骤S801-S803。
S801:监听第三事务节点,获取第三事务节点的注册信息。
其中,上述注册信息表示:上述第三事务节点初始化其他事务节点的情况。
S802:生成第一客户端的客户端标识。
其中,上述第一客户端为软件模块、且用于监听第一事务节点,上述第一事务节点为:在预设处理顺序中位于首位的事务节点,上述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序。
S803:向服务端发送所获取的注册信息,以使得上述服务端基于上述注册信息确定上述第三事务节点是否发生异常。
其中,上述服务端为软件模块。
由以上可见,第三客户端用于对第三事务节点进行监听,获取第三事务节点的注册信息,并将注册信息发送至服务端,服务端便可以识别第三事务节点是否发生异常。第三客户端对第三事务节点进行监听不会影响第三事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第三事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第三事务节点与第三客户端以及服务端分别独立运行,被检测的第三事务节点以及用于检测的第三客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
与前述事务异常识别系统相对应,本发明实施例还提供了一种应用于服务端的事务异常处理方法。
参见图9,为本发明实施例提供的第七种事务异常识别方法的流程示意图,应用于服务端,上述服务员为软件模块,上述方法包括以下步骤S901-S903。
S901:在接收到第一客户端发送的客户端标识后,基于上述客户端标识与生成事务标识的时刻,生成事务标识。
其中,上述第一客户端为软件模块、且用于监听第一事务节点,上述第一事务节点为:在预设处理顺序中位于首位的事务节点,上述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序。
S902:向上述第一客户端发送上述事务标识。
S903:接收客户端发送的处理信息,确定上述处理信息表示的事务节点是否发生异常。
由以上可见,事务处理过程中涉及的每一事务节点均对应一个不同的客户端,客户端用于对该事务节点进行监听,获取事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别事务节点是否发生异常。客户端对事务节点进行监听不会影响事务节点正常的数据处理,因此通过本发明实施例提供的方案确定事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中事务节点与客户端以及服务端分别独立运行,被检测的事务节点以及用于检测的客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同,便于服务端对一个完整的事务处理过程进行统一的管理。
本发明的一个实施例中,上述确定上述处理信息表示的事务节点是否发生异常,包括:
基于接收到上述处理信息的时刻与预设超时时长,计算产生上述处理信息的目标事务节点的超时时刻;
若上述目标事务节点在上述超时时刻未完成数据处理,则确定上述目标事务节点发生异常。
本发明的一个实施例中,上述方法还包括:
接收第三客户端发送的注册信息,其中,上述第三客户端为软件模块,且用于监听第三事务节点并获取第三事务节点的注册信息,上述注册信息表示:上述第三事务节点初始化上述第一事务节点与第二事务节点的情况;
基于上述注册信息,确定上述第三事务节点是否发生异常。
由以上可见,第三事务节点用于初始化并注册第一事务节点与第二事务节点,在第三事务节点正常运行的情况下,第一事务节点与第二事务节点才能够正常的进行数据处理。但第三事务节点也有可能发生异常,影响第一事务节点与第二事务节点顺利初始化,因此也可以对第三事务节点进行监听,通过监听得到的注册信息判断第三事务节点是否发生异常。
本发明的一个实施例中,在上述确定上述处理信息表示的事务节点是否发生异常后,还包括:
在确定上述处理信息表示的事务节点发生异常的情况下,向该事务节点发送携带异常类型的补偿处理指令,以指示该事务节点进行预设的、与上述异常类型相对应的补偿处理,其中,上述异常类型为:该事务节点所发生的异常的类型。
由以上可见,在服务端确定事务节点发生异常后,可以向事务节点发送补偿处理指令,以指示事务节点进行预设的补偿处理,补偿事务节点发生的异常,从而可以在无需认为干预的情况下完成事务节点的异常处理过程,异常处理的效率较高。
本发明的一个实施例中,在上述接收客户端发送的处理信息后,还包括:
向发送上述处理信息的客户端发送表示上述服务端接收到上述处理信息的信息应答。
本发明的一个实施例中,在上述接收客户端发送的处理信息后,还包括:
将上述处理信息存储于磁盘中。
与前述应用于第一客户端的事务异常识别方法相对应,本发明实施例还提供了一种应用于第一客户端的事务异常识别装置。
参见图10,为本发明实施例提供的第一种事务异常识别装置的结构示意图,应用于第一客户端,上述第一客户端为软件模块,上述装置包括:
客户端标识发送模块1001,用于在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,以使得所述服务端基于所述客户端标识与生成事务标识的时刻,生成并向所述第一客户端发送事务标识;其中,所述服务端为软件模块,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序;
第一标识发送模块1002,用于获取所述事务标识,并向第二客户端发送所述事务标识,其中,所述第二客户端为软件模块,用于监听所述预设处理顺序中除所述第一事务节点之外的其他事务节点;
第一信息获取模块1003,用于监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息;
第一信息发送模块1004,用于基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第一事务节点是否发生异常。
由以上可见,第一客户端用于对第一事务节点进行监听,获取第一事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第一事务节点是否发生异常。第一客户端对第一事务节点进行监听不会影响第一事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第一事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第一事务节点与第一客户端以及服务端分别独立运行,被检测的第一事务节点以及用于检测的第一客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同。第一客户端向第二客户端发送事务标识,使得用于对同一事务处理过程中涉及的各个事务节点进行监听的客户端均能够获取到该事务处理过程的事务标识,便于服务端对一个完整的事务处理过程进行统一的管理。
本发明的一个实施例中,所述第一信息发送模块1004,具体用于:
以所述事件标识为被除数,以服务端管理的、用于存储处理信息的槽位的总数为被除数,进行取模计算;
基于计算结果,选择服务端;
向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第一事务节点是否发生异常。
本发明的一个实施例中,所述装置还包括:
第一信息缓存模块,用于若向所选择的服务端发送处理信息之后、预设时长内未接收到针对所述处理信息的信息应答,缓存所发送的处理信息。
由以上可见,若计时达到预设时长的时长之后还未接收到信息应答,可能是第一客户端与服务端之间的数据传输故障,或者服务端故障,则第一客户端可以确定服务端未接收到处理信息,则第一客户端可以缓存上述处理信息,防止处理信息丢失,从而可以在故障解除后重新判断事务节点是否发生异常。
与前述应用于第二客户端的事务异常识别方法相对应,本发明实施例还提供了一种应用于第二客户端的事务异常识别装置。
参见图11,为本发明实施例提供的第二种事务异常识别装置的结构示意图,应用于第二客户端,上述第二客户端为软件模块,上述装置包括:
事务标识获取模块1101,用于获取第一客户端发送的事务标识,其中,所述第一客户端为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序,所述事务标识是:基于所述第一客户端的客户端标识以及生成事务标识的时刻生成的;
节点监听模块1102,用于监听自身对应的第二事务节点,其中,所述第二事务节点为:在预设处理顺序中、除所述第一事务节点之外的事务节点;
第二信息获取模块1103,用于获取表示所述第二事务节点的数据处理情况的处理信息;
第二信息发送模块1104,用于基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第二事务节点是否发生异常,其中,所述服务端为软件模块。
由以上可见,第二客户端用于对第二事务节点进行监听,获取第二事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第二事务节点是否发生异常。第二客户端对第二事务节点进行监听不会影响第二事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第二事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第二事务节点与第二客户端以及服务端分别独立运行,被检测的第二事务节点以及用于检测的第二客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
本发明的一个实施例中,所述第二信息发送模块1103,具体用于:
以所述事件标识为被除数,以服务端管理的、用于存储处理信息的槽位的总数为被除数,进行取模计算;
基于计算结果,选择服务端;
向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第二事务节点是否发生异常。
本发明的一个实施例中,所述装置还包括:
第二信息缓存模块,用于若向所述服务端发送处理信息之后、预设时长内未接收到针对所述处理信息的信息应答,缓存所发送的处理信息。
由以上可见,若计时达到预设时长的时长之后还未接收到信息应答,可能是第二客户端与服务端之间的数据传输故障,或者服务端故障,则第二客户端可以确定服务端未接收到处理信息,则第二客户端可以缓存上述处理信息,防止处理信息丢失,从而可以在故障解除后重新判断事务节点是否发生异常。
与前述应用于第三客户端的事务异常识别方法相对应,本发明实施例还提供了一种应用于第三客户端的事务异常识别装置。
参见图12,为本发明实施例提供的第三种事务异常识别装置的结构示意图,应用于第三客户端,所述第三客户端为软件模块,所述装置包括:
第三信息获取模块1201,用于监听第三事务节点,获取第三事务节点的注册信息,其中,所述注册信息表示:所述第三事务节点初始化其他事务节点的情况;
客户端标识生成模块1202,用于生成第一客户端的客户端标识,其中,所述第一客户端为软件模块、且用于监听第一事务节点,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序;
第三信息发送模块1203,用于向服务端发送所获取的注册信息,以使得所述服务端基于所述注册信息确定所述第三事务节点是否发生异常,所述服务端为软件模块。
由以上可见,第三客户端用于对第三事务节点进行监听,获取第三事务节点的注册信息,并将注册信息发送至服务端,服务端便可以识别第三事务节点是否发生异常。第三客户端对第三事务节点进行监听不会影响第三事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第三事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第三事务节点与第三客户端以及服务端分别独立运行,被检测的第三事务节点以及用于检测的第三客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
与前述应用于服务端的事务异常识别方法相对应,本发明实施例还提供了一种应用于服务端的事务异常识别装置。
参见图13,为本发明实施例提供的第四种事务异常识别装置的结构示意图,应用于服务端,上述服务端为软件模块,所述装置包括:
事务标识生成模块1301,用于在接收到第一客户端发送的客户端标识后,基于所述客户端标识与生成事务标识的时刻,生成事务标识,其中,所述第一客户端为软件模块、且用于监听第一事务节点,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序;
第二标识发送模块1302,用于向所述第一客户端发送所述事务标识;
第一异常确定模块1303,用于接收客户端发送的处理信息,确定所述处理信息表示的事务节点是否发生异常。
由以上可见,事务处理过程中涉及的每一事务节点均对应一个不同的客户端,客户端用于对该事务节点进行监听,获取事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别事务节点是否发生异常。客户端对事务节点进行监听不会影响事务节点正常的数据处理,因此通过本发明实施例提供的方案确定事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中事务节点与客户端以及服务端分别独立运行,被检测的事务节点以及用于检测的客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同,便于服务端对一个完整的事务处理过程进行统一的管理。
本发明的一个实施例中,所述第一异常确定模块1303,具体用于:
接收客户端发送的处理信息;
基于接收到所述处理信息的时刻与预设超时时长,计算产生所述处理信息的目标事务节点的超时时刻;
若所述目标事务节点在所述超时时刻未完成数据处理,则确定所述目标事务节点发生异常。
本发明的一个实施例中,所述装置还包括:
信息接收模块,用于接收第三客户端发送的注册信息,其中,所述第三客户端为软件模块,且用于监听第三事务节点并获取第三事务节点的注册信息,所述注册信息表示:所述第三事务节点初始化所述第一事务节点与第二事务节点的情况;
第二异常确定模块,用于基于所述注册信息,确定所述第三事务节点是否发生异常。
由以上可见,第三事务节点用于初始化并注册第一事务节点与第二事务节点,在第三事务节点正常运行的情况下,第一事务节点与第二事务节点才能够正常的进行数据处理。但第三事务节点也有可能发生异常,影响第一事务节点与第二事务节点顺利初始化,因此也可以对第三事务节点进行监听,通过监听得到的注册信息判断第三事务节点是否发生异常。
本发明的一个实施例中,所述装置还包括:
补偿指示模块,用于在确定所述处理信息表示的事务节点发生异常的情况下,向该事务节点发送携带异常类型的补偿处理指令,以指示该事务节点进行预设的、与所述异常类型相对应的补偿处理,其中,所述异常类型为:该事务节点所发生的异常的类型。
由以上可见,在服务端确定事务节点发生异常后,可以向事务节点发送补偿处理指令,以指示事务节点进行预设的补偿处理,补偿事务节点发生的异常,从而可以在无需认为干预的情况下完成事务节点的异常处理过程,异常处理的效率较高。
本发明的一个实施例中,所述装置还包括:
应答发送模块,用于向发送所述处理信息的客户端发送表示所述服务端接收到所述处理信息的信息应答。
本发明的一个实施例中,所述装置还包括:
信息存储模块,用于将所述处理信息存储于磁盘中。
本发明实施例还提供了第一种电子设备,如图14所示,包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信,
存储器1403,用于存放计算机程序;
处理器1401,用于执行存储器1403上所存放的程序时,实现以下应用于第一客户端的事务异常识别方法。
应用本发明实施例提供的电子设备进行事务异常识别时,第一客户端用于对第一事务节点进行监听,获取第一事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第一事务节点是否发生异常。第一客户端对第一事务节点进行监听不会影响第一事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第一事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第一事务节点与第一客户端以及服务端分别独立运行,被检测的第一事务节点以及用于检测的第一客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同。第一客户端向第二客户端发送事务标识,使得用于对同一事务处理过程中涉及的各个事务节点进行监听的客户端均能够获取到该事务处理过程的事务标识,便于服务端对一个完整的事务处理过程进行统一的管理。
本发明实施例还提供了第二种电子设备,如图15所示,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信,
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现以下应用于第二客户端的事务异常识别方法。
应用本发明实施例提供的电子设备进行事务异常识别时,第二客户端用于对第二事务节点进行监听,获取第二事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第二事务节点是否发生异常。第二客户端对第二事务节点进行监听不会影响第二事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第二事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第二事务节点与第二客户端以及服务端分别独立运行,被检测的第二事务节点以及用于检测的第二客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
本发明实施例还提供了第三种电子设备,如图16所示,包括处理器1601、通信接口1602、存储器1603和通信总线1604,其中,处理器1601,通信接口1602,存储器1603通过通信总线1604完成相互间的通信,
存储器1603,用于存放计算机程序;
处理器1601,用于执行存储器1603上所存放的程序时,实现以下应用于第三客户端的事务异常识别方法。
应用本发明实施例提供的电子设备进行事务异常识别时,第三客户端用于对第三事务节点进行监听,获取第三事务节点的注册信息,并将注册信息发送至服务端,服务端便可以识别第三事务节点是否发生异常。第三客户端对第三事务节点进行监听不会影响第三事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第三事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第三事务节点与第三客户端以及服务端分别独立运行,被检测的第三事务节点以及用于检测的第三客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
本发明实施例还提供了第四种电子设备,如图17所示,包括处理器1701、通信接口1702、存储器1703和通信总线1704,其中,处理器1701,通信接口1702,存储器1703通过通信总线1704完成相互间的通信,
存储器1703,用于存放计算机程序;
处理器1701,用于执行存储器1703上所存放的程序时,实现以下应用于服务端的事务异常识别方法。
应用本发明实施例提供的电子设备进行事务异常识别时,事务处理过程中涉及的每一事务节点均对应一个不同的客户端,客户端用于对该事务节点进行监听,获取事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别事务节点是否发生异常。客户端对事务节点进行监听不会影响事务节点正常的数据处理,因此通过本发明实施例提供的方案确定事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中事务节点与客户端以及服务端分别独立运行,被检测的事务节点以及用于检测的客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同,便于服务端对一个完整的事务处理过程进行统一的管理。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于第一客户端的事务异常识别方法的步骤。
执行本发明实施例提供的计算机可读存储介质中存储的计算机程序进行事务异常识别时,第一客户端用于对第一事务节点进行监听,获取第一事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第一事务节点是否发生异常。第一客户端对第一事务节点进行监听不会影响第一事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第一事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第一事务节点与第一客户端以及服务端分别独立运行,被检测的第一事务节点以及用于检测的第一客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同。第一客户端向第二客户端发送事务标识,使得用于对同一事务处理过程中涉及的各个事务节点进行监听的客户端均能够获取到该事务处理过程的事务标识,便于服务端对一个完整的事务处理过程进行统一的管理。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于第二客户端的事务异常识别方法的步骤。
执行本发明实施例提供的计算机可读存储介质中存储的计算机程序进行事务异常识别时,第二客户端用于对第二事务节点进行监听,获取第二事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第二事务节点是否发生异常。第二客户端对第二事务节点进行监听不会影响第二事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第二事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第二事务节点与第二客户端以及服务端分别独立运行,被检测的第二事务节点以及用于检测的第二客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于第三客户端的事务异常识别方法的步骤。
执行本发明实施例提供的计算机可读存储介质中存储的计算机程序进行事务异常识别时,第三客户端用于对第三事务节点进行监听,获取第三事务节点的注册信息,并将注册信息发送至服务端,服务端便可以识别第三事务节点是否发生异常。第三客户端对第三事务节点进行监听不会影响第三事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第三事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第三事务节点与第三客户端以及服务端分别独立运行,被检测的第三事务节点以及用于检测的第三客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一应用于服务端的事务异常识别方法的步骤。
执行本发明实施例提供的计算机可读存储介质中存储的计算机程序进行事务异常识别时,事务处理过程中涉及的每一事务节点均对应一个不同的客户端,客户端用于对该事务节点进行监听,获取事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别事务节点是否发生异常。客户端对事务节点进行监听不会影响事务节点正常的数据处理,因此通过本发明实施例提供的方案确定事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中事务节点与客户端以及服务端分别独立运行,被检测的事务节点以及用于检测的客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同,便于服务端对一个完整的事务处理过程进行统一的管理。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于第一客户端的事务异常识别方法的步骤。
执行本发明实施例提供的计算机程序进行事务异常识别时,第一客户端用于对第一事务节点进行监听,获取第一事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第一事务节点是否发生异常。第一客户端对第一事务节点进行监听不会影响第一事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第一事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第一事务节点与第一客户端以及服务端分别独立运行,被检测的第一事务节点以及用于检测的第一客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同。第一客户端向第二客户端发送事务标识,使得用于对同一事务处理过程中涉及的各个事务节点进行监听的客户端均能够获取到该事务处理过程的事务标识,便于服务端对一个完整的事务处理过程进行统一的管理。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于第二客户端的事务异常识别方法的步骤。
执行本发明实施例提供的计算机程序进行事务异常识别时,第二客户端用于对第二事务节点进行监听,获取第二事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别第二事务节点是否发生异常。第二客户端对第二事务节点进行监听不会影响第二事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第二事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第二事务节点与第二客户端以及服务端分别独立运行,被检测的第二事务节点以及用于检测的第二客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于第三客户端的事务异常识别方法的步骤。
执行本发明实施例提供的计算机程序进行事务异常识别时,第三客户端用于对第三事务节点进行监听,获取第三事务节点的注册信息,并将注册信息发送至服务端,服务端便可以识别第三事务节点是否发生异常。第三客户端对第三事务节点进行监听不会影响第三事务节点正常的数据处理,因此通过本发明实施例提供的方案确定第三事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中第三事务节点与第三客户端以及服务端分别独立运行,被检测的第三事务节点以及用于检测的第三客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于服务端的事务异常识别方法的步骤。
执行本发明实施例提供的计算机程序进行事务异常识别时,事务处理过程中涉及的每一事务节点均对应一个不同的客户端,客户端用于对该事务节点进行监听,获取事务节点的处理信息,并将处理信息发送至服务端,服务端便可以识别事务节点是否发生异常。客户端对事务节点进行监听不会影响事务节点正常的数据处理,因此通过本发明实施例提供的方案确定事务节点是否发生异常不会对正常的事务处理过程造成影响。并且本方案中事务节点与客户端以及服务端分别独立运行,被检测的事务节点以及用于检测的客户端、服务端之间的耦合度低,使得本发明实施例能够复用于不同的事务处理流程中。
再者,第一事务节点为整个事务处理过程中的第一个环节,第一客户端确定第一事务节点进行数据处理,说明事务处理开始,便可以向服务端发送第一客户端的客户端标识。服务端基于客户端标识与生成事务标识的时刻可以生成事务标识,不同事务处理过程起始的第一事务节点不同,所对应的第一客户端不同,第一客户端的客户标识不同,所生成的事务标识便不同。对于同一第一客户端,不同时刻生成的事务标识也不同,因此每一事务处理过程对应的事务标识不同,便于服务端对一个完整的事务处理过程进行统一的管理。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务端或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务端或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务端、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法、装置、电子设备、存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (21)

1.一种事务异常识别系统,其特征在于,所述系统包括:多个客户端与多个服务端,所述客户端包括:一个第一客户端以及一个或多个第二客户端,所述客户端与服务端均为软件模块,每一客户端监听一个事务节点,各个客户端监听的事务节点共同完成一个事务处理流程;
所述第一客户端,用于在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序;
所述服务端,用于基于所述客户端标识与生成事务标识的时刻,生成事务标识,向所述第一客户端发送所述事务标识;
所述第一客户端,还用于向所述第二客户端发送所述事务标识;监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;
所述第二客户端,用于监听自身对应的第二事务节点,并获取表示所述第二事务节点的数据处理情况的处理信息;基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;其中,所述第二事务节点为:在所述预设处理顺序中、除所述第一事务节点之外的事务节点;
所述服务端,用于基于所接收到的处理信息,确定所述处理信息表示的事务节点是否发生异常。
2.根据权利要求1所述的系统,其特征在于,所述服务端,具体用于:基于接收到所述处理信息的时刻与预设超时时长,计算产生所述处理信息的目标事务节点的超时时刻;
若所述目标事务节点在所述超时时刻未完成数据处理,则确定所述目标事务节点发生异常。
3.根据权利要求1所述的系统,其特征在于,所述客户端中还包括第三客户端;
所述第三客户端,用于监听第三事务节点,获取注册信息,并生成所述第一客户端的客户端标识;
向所述第一客户端发送所述客户端标识;向服务端发送所获取的注册信息,其中,所述注册信息表示:所述第三事务节点初始化所述第一事务节点与第二事务节点的情况;
所述服务端,还用于基于所述注册信息,确定所述第三事务节点是否发生异常。
4.根据权利要求1所述的系统,其特征在于,所述服务端,还用于:
在确定所述处理信息表示的事务节点发生异常的情况下,向该事务节点发送携带异常类型的补偿处理指令,以指示该事务节点进行预设的、与所述异常类型相对应的补偿处理,其中,所述异常类型为:该事务节点所发生的异常的类型。
5.根据权利要求1所述的系统,其特征在于,
所述服务端,还用于在接收到处理信息之后,向发送所述处理信息的客户端发送表示所述服务端接收到所述处理信息的信息应答;
所述客户端,还用于若向所述服务端发送处理信息之后、预设时长内未接收到信息应答,缓存所发送的处理信息。
6.根据权利要求1-5中任一项所述的系统,其特征在于,所述服务端,还用于:
在接收到处理信息之后,将所述处理信息存储于磁盘中。
7.一种事务异常识别方法,其特征在于,应用于第一客户端,所述第一客户端为软件模块,所述方法包括:
在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,以使得所述服务端基于所述客户端标识与生成事务标识的时刻,生成并向所述第一客户端发送事务标识;其中,所述服务端为软件模块,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序;
获取所述事务标识,并向第二客户端发送所述事务标识,其中,所述第二客户端为软件模块,用于监听所述预设处理顺序中除所述第一事务节点之外的第二事务节点,并获取表示所述第二事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;
监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息;
基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第一事务节点是否发生异常。
8.根据权利要求7所述的方法,其特征在于,在所述向所选择的服务端发送所获取的处理信息之后,还包括:
若向所选择的服务端发送处理信息之后、预设时长内未接收到针对所述处理信息的信息应答,缓存所发送的处理信息。
9.一种事务异常识别方法,其特征在于,应用于第二客户端,所述第二客户端为软件模块,所述方法包括:
获取第一客户端发送的事务标识,其中,所述第一客户端为软件模块,所述第一客户端在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序,所述事务标识是:服务端基于所述第一客户端的客户端标识以及生成事务标识的时刻生成并发送给所述第一客户端的,所述第一客户端还监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;
监听自身对应的第二事务节点,其中,所述第二事务节点为:在预设处理顺序中、除所述第一事务节点之外的事务节点;
获取表示所述第二事务节点的数据处理情况的处理信息;
基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述处理信息表示的事务节点是否发生异常,其中,所述服务端为软件模块。
10.根据权利要求9所述的方法,其特征在于,在所述向所选择的服务端发送所获取的处理信息之后,还包括:
若向所述服务端发送处理信息之后、预设时长内未接收到针对所述处理信息的信息应答,缓存所发送的处理信息。
11.一种事务异常识别方法,其特征在于,应用于服务端,所述服务端为软件模块,所述方法包括:
在接收到第一客户端发送的客户端标识后,基于所述客户端标识与生成事务标识的时刻,生成并向第一客户端发送事务标识,所述客户端标识是第一客户端在确定所监听的第一事务节点进行数据处理时,向服务端发送的,其中,所述第一客户端为软件模块、且用于监听第一事务节点,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序;
向所述第一客户端发送所述事务标识;
接收客户端发送的处理信息,确定所述处理信息表示的事务节点是否发生异常;所述客户端包括第一客户端和第二客户端,所述第一客户端向所述第二客户端发送所述事务标识,监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;所述第二客户端为软件模块,监听自身对应的第二事务节点,并获取表示所述第二事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;其中,所述第二事务节点为:在所述预设处理顺序中、除所述第一事务节点之外的事务节点。
12.根据权利要求11所述的方法,其特征在于,所述确定所述处理信息表示的事务节点是否发生异常,包括:
基于接收到所述处理信息的时刻与预设超时时长,计算产生所述处理信息的目标事务节点的超时时刻;
若所述目标事务节点在所述超时时刻未完成数据处理,则确定所述目标事务节点发生异常。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
接收第三客户端发送的注册信息,其中,所述第三客户端为软件模块,且用于监听第三事务节点并获取第三事务节点的注册信息,所述注册信息表示:所述第三事务节点初始化所述第一事务节点与第二事务节点的情况;
基于所述注册信息,确定所述第三事务节点是否发生异常。
14.根据权利要求11所述的方法,其特征在于,在所述确定所述处理信息表示的事务节点是否发生异常后,还包括:
在确定所述处理信息表示的事务节点发生异常的情况下,向该事务节点发送携带异常类型的补偿处理指令,以指示该事务节点进行预设的、与所述异常类型相对应的补偿处理,其中,所述异常类型为:该事务节点所发生的异常的类型。
15.根据权利要求11所述的方法,其特征在于,在所述接收客户端发送的处理信息后,还包括:
向发送所述处理信息的客户端发送表示所述服务端接收到所述处理信息的信息应答。
16.根据权利要求11-15中任一项所述的方法,其特征在于,在所述接收客户端发送的处理信息后,还包括:将所述处理信息存储于磁盘中。
17.一种事务异常识别装置,其特征在于,应用于第一客户端,所述第一客户端为软件模块,所述装置包括:
客户端标识发送模块,用于在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,以使得所述服务端基于所述客户端标识与生成事务标识的时刻,生成并向所述第一客户端发送事务标识;
其中,所述服务端为软件模块,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序;
第一标识发送模块,用于获取所述事务标识,并向第二客户端发送所述事务标识,其中,所述第二客户端为软件模块,用于监听所述预设处理顺序中除所述第一事务节点之外的第二事务节点,并获取表示所述第二事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;
第一信息获取模块,用于监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息;
第一信息发送模块,用于基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述第一事务节点是否发生异常。
18.一种事务异常识别装置,其特征在于,应用于第二客户端,所述第二客户端为软件模块,所述装置包括:
事务标识获取模块,用于获取第一客户端发送的事务标识,其中,所述第一客户端为软件模块,所述第一客户端在确定所监听的第一事务节点进行数据处理时,向服务端发送所述第一客户端的客户端标识,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个事务节点处理数据的顺序,所述事务标识是:服务端基于所述第一客户端的客户端标识以及生成事务标识的时刻生成并发送给所述第一客户端的,所述第一客户端还监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;
节点监听模块,用于监听自身对应的第二事务节点,其中,所述第二事务节点为:在预设处理顺序中、除所述第一事务节点之外的事务节点;
第二信息获取模块,用于获取表示所述第二事务节点的数据处理情况的处理信息;
第二信息发送模块,用于基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息,以使得所述服务端基于所述处理信息,确定所述处理信息表示的事务节点是否发生异常,其中,所述服务端为软件模块。
19.一种事务异常识别装置,其特征在于,应用于服务端,所述服务端为软件模块,所述装置包括:
事务标识生成模块,用于在接收到第一客户端发送的客户端标识后,基于所述客户端标识与生成事务标识的时刻,生成并向第一客户端发送事务标识,所述客户端标识是第一客户端在确定所监听的第一事务节点进行数据处理时,向服务端发送的,其中,所述第一客户端为软件模块、且用于监听第一事务节点,所述第一事务节点为:在预设处理顺序中位于首位的事务节点,所述预设处理顺序为:预设的、各个其他事务节点处理数据的顺序;
第二标识发送模块,用于向所述第一客户端发送所述事务标识;
第一异常确定模块,用于接收客户端发送的处理信息,确定所述处理信息表示的事务节点是否发生异常;所述客户端包括第一客户端和第二客户端,所述第一客户端向所述第二客户端发送所述事务标识,监听所述第一事务节点,获取表示所述第一事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;所述第二客户端为软件模块,监听自身对应的第二事务节点,并获取表示所述第二事务节点的数据处理情况的处理信息,基于所述事务标识选择服务端,向所选择的服务端发送所获取的处理信息;其中,所述第二事务节点为:在所述预设处理顺序中、除所述第一事务节点之外的事务节点。
20.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现权利要求7-8、9-10或11-16任一所述方法的步骤。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求7-8、9-10或11-16任一所述方法的步骤。
CN202111623028.7A 2021-12-28 2021-12-28 一种事务节点异常识别系统、方法及装置 Active CN114422398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111623028.7A CN114422398B (zh) 2021-12-28 2021-12-28 一种事务节点异常识别系统、方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111623028.7A CN114422398B (zh) 2021-12-28 2021-12-28 一种事务节点异常识别系统、方法及装置

Publications (2)

Publication Number Publication Date
CN114422398A CN114422398A (zh) 2022-04-29
CN114422398B true CN114422398B (zh) 2024-05-14

Family

ID=81268651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111623028.7A Active CN114422398B (zh) 2021-12-28 2021-12-28 一种事务节点异常识别系统、方法及装置

Country Status (1)

Country Link
CN (1) CN114422398B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101046815A (zh) * 2007-03-14 2007-10-03 华为技术有限公司 事务协调器、资源使用端、服务端及分布式事务处理方法
CN106325978A (zh) * 2015-06-19 2017-01-11 阿里巴巴集团控股有限公司 分布式事务的处理方法及装置
US9842031B1 (en) * 2014-12-08 2017-12-12 Amazon Technologies, Inc. Incremental updates to user transaction state at read-only nodes of a distributed database
CN112835687A (zh) * 2021-01-22 2021-05-25 恒生电子股份有限公司 一种计算机事务处理方法及系统
CN113515352A (zh) * 2021-05-18 2021-10-19 中国工商银行股份有限公司 分布式事务异库模式反交易调用方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101046815A (zh) * 2007-03-14 2007-10-03 华为技术有限公司 事务协调器、资源使用端、服务端及分布式事务处理方法
US9842031B1 (en) * 2014-12-08 2017-12-12 Amazon Technologies, Inc. Incremental updates to user transaction state at read-only nodes of a distributed database
CN106325978A (zh) * 2015-06-19 2017-01-11 阿里巴巴集团控股有限公司 分布式事务的处理方法及装置
CN112835687A (zh) * 2021-01-22 2021-05-25 恒生电子股份有限公司 一种计算机事务处理方法及系统
CN113515352A (zh) * 2021-05-18 2021-10-19 中国工商银行股份有限公司 分布式事务异库模式反交易调用方法及装置

Also Published As

Publication number Publication date
CN114422398A (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
US10652261B2 (en) Computer-implemented system and method for creating an environment for detecting malicious content
US8943209B2 (en) Methods, systems, and computer readable media for policy and charging rules function (PCRF) fault tolerance
US10742532B2 (en) Non-intrusive mechanism to measure network function packet processing delay
CN108681565B (zh) 区块链数据并行处理方法、装置、设备和存储介质
US6363477B1 (en) Method for analyzing network application flows in an encrypted environment
US8203958B2 (en) Frame counter correction apparatus, opposing apparatus, and frame counter correction method
CN108769171B (zh) 分布式存储的副本保持验证方法、装置、设备及存储介质
CN106856434A (zh) 访问请求转换的方法和装置
CN112737800B (zh) 服务节点故障定位方法、调用链生成方法及服务器
CN108920965A (zh) 一种区块链存证方法及装置
JP2013500542A (ja) データのロギングと分析の方法およびシステム
CN107341096A (zh) 日志文件的生成方法和装置、计算机设备和存储介质
CN108769083A (zh) 基于分布式服务器的登录方法、装置及系统
CN108260015B (zh) 一种投票数据处理方法、装置及电子设备
CN104052679A (zh) 网络流量的负载均衡方法和装置
CN111130936B (zh) 一种负载均衡算法的测试方法及装置
CN106126419A (zh) 一种应用程序的调试方法及装置
CN106067879A (zh) 信息的检测方法及装置
CN109150587B (zh) 一种维护方法和装置
CN114422398B (zh) 一种事务节点异常识别系统、方法及装置
CN109101577A (zh) 一种数据流通方法、装置及系统
CN112671602A (zh) 边缘节点的数据处理方法、装置、系统、设备和存储介质
CN114782045B (zh) 跨链非事务性写入方法和装置、存储介质、电子设备
CN103326892B (zh) Web接口的操作方法及装置
CN109495319A (zh) Cdn节点的故障信息确定方法、装置及设备

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