CN113962813A - 一种交易冲正方法、装置、服务系统、设备及存储介质 - Google Patents
一种交易冲正方法、装置、服务系统、设备及存储介质 Download PDFInfo
- Publication number
- CN113962813A CN113962813A CN202111369880.6A CN202111369880A CN113962813A CN 113962813 A CN113962813 A CN 113962813A CN 202111369880 A CN202111369880 A CN 202111369880A CN 113962813 A CN113962813 A CN 113962813A
- Authority
- CN
- China
- Prior art keywords
- orthogonal
- service node
- identifier
- service
- node cluster
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Abstract
本发明涉及数据处理技术领域,具体是一种交易冲正方法、装置、服务系统、设备及存储介质,所述方法应用于事务管理平台,所述事务管理平台与至少一个服务节点集群通信连接,所述方法包括:确定待处理的第一冲正交易流水;获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识,所述冲正请求用于指示所述服务节点集群对所述第一冲正交易流水进行冲正处理。本发明实施例的交易冲正方法,提高了交易冲正的成功率,还兼顾了交易冲正的时效性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种交易冲正方法、装置、服务系统、设备及存储介质。
背景技术
面对互联网金融的全新发展态势,传统的单体IT架构越来越暴露出低效的缺点,这催生了分布式技术的发展。通过将单体应用服务改造为分布式服务模式,能够降低因业务快速增长对服务系统的压力。
根据CAP理论,分布式系统具有三个特性,分别为一致性(Consistency,简称C)、可用性(Availability,简称A)以及分区容忍性(Partition Tolerance,简称P),任何分布式系统,最多只能满足数据一致性、可用性、分区容忍性三个特征中的两个。通常在分布式系统设计过程中,必须满足可用性和分区容忍性,而舍弃一致性。但是在金融等领域中,一致性同样重要,因此金融类的分布式服务系统需要通过异步冲正和事后处理等手段保证业务的最终一致性。
其中,事后处理是将发生异常的交易通过消息队列发送到失败交易的记录表,事后通过人工处理等方式对交易进行回退,这种方式通常要几个小时或者隔日才能完成,实时性较差。异步冲正失败有时候是由于某一个时间段内的特殊原因造成,这样即使重试多次都会失败,随着冲正失败次数增多,轮询和判断会消耗过多的系统资源,因此,为了保证系统的正常运行,通常在异步冲正达到一定次数之后就不再重试,从而使得异步冲正的成功率不高,难以满足金融类的分布式服务系统的需求。
发明内容
针对现有技术的上述问题,本发明的目的在于提供一种交易冲正方法、装置、服务系统、设备及存储介质,能够提高异步冲正的成功率,保证业务的最终一致性。
为了解决上述问题,本发明提供一种交易冲正方法,应用于事务管理平台,所述事务管理平台与至少一个服务节点集群通信连接,所述方法包括:
确定待处理的第一冲正交易流水;
获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;
向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识,所述冲正请求用于指示所述服务节点集群对所述第一冲正交易流水进行冲正处理。
进一步地,所述确定待处理的第一冲正交易流水包括:
对所述至少一个服务节点集群中异常交易的冲正交易流水的处理状态进行监控;
将处理状态异常的冲正交易流水作为待处理的第一冲正交易流水;
或者,
每经过第一预设时间间隔,从平台数据库中筛选满足第一预设条件的冲正交易流水作为待处理的第一冲正交易流水。
进一步地,所述事务管理平台通过路由模块与所述至少一个服务节点集群通信连接;
所述向所述服务标识对应的服务节点集群发送冲正请求包括:
将所述服务标识和所述冲正请求发送至所述路由模块,以使得所述路由模块根据所述服务标识确定对应的服务节点集群,从所述服务节点集群中选取目标服务节点,将所述冲正请求发送至所述目标服务节点。
进一步地,所述方法还包括:
获取所述至少一个服务节点集群进行冲正处理产生的冲正交易流水,将所述冲正交易流水发送至消息队列;其中,所述冲正处理包括内部冲正处理和异步冲正处理;
获取所述消息队列中的冲正交易流水,将所述冲正交易流水存储至平台数据库中。
本发明另一方面提供一种交易冲正方法,应用于服务系统,所述服务系统包括事务管理平台和与之通信连接的至少一个服务节点集群,所述方法包括:
所述事务管理平台确定待处理的第一冲正交易流水;
所述事务管理平台获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;
所述事务管理平台向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识;
所述服务节点集群接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理。
进一步地,所述事务管理平台通过路由模块与所述至少一个服务节点集群通信连接;
所述事务管理平台向所述服务标识对应的服务节点集群发送冲正请求包括:
所述事务管理平台将所述服务标识和所述冲正请求发送至所述路由模块;
所述路由模块根据所述服务标识确定对应的服务节点集群,从所述服务节点集群中选取目标服务节点,将所述冲正请求发送至所述目标服务节点;
相应地,所述服务节点集群接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理包括:
所述目标服务节点接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理。
进一步地,所述方法还包括:
当发生异常交易时,所述服务节点集群对所述异常交易的交易流水进行内部冲正处理,得到内部冲正处理结果;
当所述内部冲正处理结果为冲正失败时,所述服务节点集群获取进行内部冲正处理产生的冲正交易流水,将所述冲正交易流水存储至集群数据库中。
进一步地,所述方法还包括:
所述服务节点集群对异常交易的冲正交易流水进行异步冲正处理,包括:
每经过第二预设时间间隔,所述服务节点集群从集群数据库中获取待处理的第二冲正交易流水;
所述服务节点集群对所述第二冲正交易流水进行冲正处理。
本发明另一方面提供一种交易冲正装置,设置于事务管理平台中,所述事务管理平台与至少一个服务节点集群通信连接,所述装置包括:
流水确定模块,用于确定待处理的第一冲正交易流水;
标识获取模块,用于获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;
请求发送模块,用于向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识,所述冲正请求用于指示所述服务节点集群对所述第一冲正交易流水进行冲正处理。
本发明另一方面提供一种服务系统,包括事务管理平台和与之通信连接的至少一个服务节点集群;
所述事务管理平台用于确定待处理的第一冲正交易流水;获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识;
所述服务节点集群用于接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理,将与所述第一冲正交易流水对应的交易信息恢复到交易操作前的状态。
本发明另一方面提供一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的交易冲正方法。
本发明另一方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的交易冲正方法。
本发明另一方面提供一种计算机程序产品,所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如上述的交易冲正方法。
由于上述技术方案,本发明具有以下有益效果:
根据本发明实施例的交易冲正方法,通过事务管理平台来确定待处理的交易冲正流水及其对应的服务标识和流水标识,向所述服务标识对应的服务节点集群发送冲正请求,以使得所述服务节点集群基于所述流水标识对待处理的交易冲正流水进行冲正处理,实现了对交易冲正处理的统一管理,降低了承载业务的服务节点集群在交易冲正处理上的资源消耗和性能消耗,从而提高异步冲正的成功率,保证业务的最终一致性。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明一个实施例提供的服务系统的示意图;
图2是本发明一个实施例提供的交易冲正方法的流程图;
图3是本发明一个实施例提供的内部冲正功能的示意图;
图4是本发明一个实施例提供的异步冲正功能的示意图;
图5是本发明另一个实施例提供的交易冲正方法的流程图;
图6是本发明一个实施例提供的交易冲正装置的结构示意图;
图7是本发明一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。首先,本发明实施例对下述概念进行解释:
微服务:微服务(Micro Services)是一种软体架构风格,它是以专注于单一责任与功能的小型功能区块为基础,利用模组化的方式组合出复杂的大型应用程式,各功能区块使用与语言无关的应用程序编程接口(Application Programming Interface,API)集相互通讯。
Kafka:一款开源的分布式消息队列中间件,基于文件系统,具有高性能、持久化、高可用、强一致性、高吞吐等优点。
参考说明书附图1,其示出了本发明一个实施例提供的服务系统的示意图,如图1所示,所述服务系统可以至少包括事务管理平台110和至少一个服务节点集群120,所述事务管理平台110与所述至少一个服务节点集群120通信连接。
其中,所述服务节点集群120是具体运行组合交易服务实例的集群,所述服务节点集群120可以包括多个服务节点(Application Processor,AP),不同类型的服务运行在不同的AP。所述服务节点可以包括平板电脑、笔记本电脑、台式计算机、数字助理和服务器等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等,但并不局限于此。
在实际应用中,所述服务节点集群120可以设置于服务部署单元(ServiceProcessing Unit,SPU)中,SPU是独立的部署单元,每个SPU包含所有类型的AP和数据。对于服务范围是全国的大型服务系统,可以部署多个SPU以实现高可用以及数据的分片管理。所述事务管理平台110是独立部署的一个平台,和所述服务节点集群120不处于同一个SPU内,所述事务管理平台110可以包括至少一个分布式事务管理单元(Distributed TransactionManagement,DTM),DTM同时对所有SPU内的AP提供服务,通过消息队列实现信息交互。
本发明实施例中,所述事务管理平台110中的各个DTM可以确定待处理的第一冲正交易流水;获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;向所述服务标识对应的服务节点集群120发送冲正请求,所述冲正请求包括所述流水标识。
所述服务节点集群120接收到所述冲正请求后,可以根据所述流水标识对所述第一冲正交易流水进行冲正处理,将与所述第一冲正交易流水对应的交易信息恢复到交易操作前的状态。
其中,所述事务管理平台110发送冲正请求时,可以经过路由模块进行发送,所述路由模块根据所述第一冲正交易流水对应的服务标识决定把冲正请求转发到哪个服务节点集群120。
需要说明的是,图1仅仅是一种示例。本领域技术人员可以理解,虽然图1中只示出了2个服务节点集群120、每个服务节点集群120只示出了2个服务节点,事务管理平台110只示出了2个DTM,但并不构成对本发明实施例的限定,可以包括比图示更多或更少的服务节点集群120、服务节点或DTM。
实施例1
参考说明书附图2,其示出了本发明一个实施例提供的一种交易冲正方法的流程,该方法可以应用于图1中的事务管理平台中,所述事务管理平台与至少一个服务节点集群通信连接。具体的如图2所示,所述方法可以包括以下步骤:
S210:确定待处理的第一冲正交易流水。
在金融等领域中,交易可以分为正向交易和交易冲正,正向交易可以是交易按照正常流程进行,当交易发生异常时,可以向已经执行过的交易调用反向交易,将系统中的交易恢复到正向交易操作前的状态。
本发明实施例中,所述第一冲正交易流水可以是组合交易的冲正交易流水,对于包括多个交易的组合交易,可以在所述至少一个服务节点集群中的某个服务节点集群中执行,当组合交易执行到某个交易出错时,可以按一定顺序向已经执行过的交易调用反向交易,以进行交易冲正,得到冲正交易流水。其中,所述组合交易中的各个交易可以在相同的服务节点中执行,也可以在不同的服务节点中执行,本发明实施例对此不作限制。
本发明实施例中,当组合交易执行到某个交易出错时,所述服务节点集群可以确定发生了异常交易,此时需要对所述组合交易进行交易冲正。
具体地,当发生异常交易时,所述服务节点集群可以先发起实时的内部冲正,以对所述异常交易的交易流水进行内部冲正处理,得到内部冲正处理结果。结合参考说明书附图3,当发生异常交易时,可以同步进行交易冲正,按照一定顺序遍历所述异常交易的交易流水,对所述异常交易中的各个交易进行冲正处理,如果所有的交易都冲正完成,则内部冲正处理结果为冲正成功,如果还存在至少一个交易冲正失败,则内部冲正处理结果为冲正失败。在内部冲正过程中,可以通过内/外呼流水子流程来确定处理的交易以及记录交易的流水状态等信息,并确保一个时刻只有一个线程处理内部冲正过程。
当所述内部冲正处理结果为冲正失败时,所述服务节点集群可以发起异步冲正处理,以对异常交易的冲正交易流水进行异步冲正处理,此时可以获取进行内部冲正处理产生的冲正交易流水,将所述冲正交易流水存储至集群数据库中,同时通过消息队列发送至事务管理平台。
具体地,所述服务节点集群对异常交易的冲正交易流水进行异步冲正处理,可以包括:
每经过第二预设时间间隔,所述服务节点集群从集群数据库中获取待处理的第二冲正交易流水;
所述服务节点集群对所述第二冲正交易流水进行冲正处理。
具体地,结合参考说明书附图4,所述服务节点集群可以定时从集群数据库中筛选出满足第二预设条件的冲正交易流水,作为待处理的第二冲正交易流水,并对筛选出的第二冲正交易流水逐笔进行冲正处理。在处理过程中,可以对所述待处理的第二冲正交易流水加锁,以防止其它功能模块对其进行操作。
在实际应用中,由于异步冲正失败有时候是由于某一个时间段内的特殊原因造成,这样在服务节点集群端重试多次都会失败,作为保护机制,异步冲正失败达到一定次数之后就不再重试,否则随着冲正失败次数增多,轮询和判断会消耗过多的服务器和数据库处理能力,并且服务节点集群上所有服务节点都存在这种消耗,因此所述满足第二预设条件的冲正交易流水可以为异步冲正次数小于第一预设次数的冲正交易流水。其中,所述第一预设次数可以根据实际情况进行设置,本发明实施例对此不作限制。
需要说明的是,所述第二预设时间间隔可以根据实际情况进行设置,所述第二预设条件还可以包括其它条件,例如所述第二预设时间间隔可以设置为10分钟,所述第二预设条件可以设置为异步冲正次数小于第一预设次数且距离上次冲正的时间间隔大于或等于第一预设时间,所述第一预设时间也可以根据实际情况进行设置,本发明实施例对此不作限制。
本发明实施例采用自动触发异步冲正的方式,在错误发生时先同步进行内部冲正,如果冲正失败则自动触发异步冲正,以在短时间内再进行异步冲正,并且定时重试,能够提高冲正成功率,且整个冲正过程耗时较少,实时性比较高。另外,由于异步冲正本质上还是异步的,因此不会阻塞服务节点集群中交易的处理,确保了交易可以实时返回处理结果。
本发明实施例中,所述至少一个服务节点集群中的各个服务节点集群每次进行异步冲正处理,可以产生新的冲正交易流水,可以根据所述新的冲正交易流水对集群数据库中存储的冲正交易流水进行更新,并将新的冲正交易流水通过消息队列发送至事务管理平台,以更新所述平台数据库中的冲正交易流水。
具体地,通过消息队列发送冲正交易流水至事务管理平台的方法可以包括:
获取所述至少一个服务节点集群进行冲正处理产生的冲正交易流水,将所述冲正交易流水发送至消息队列;其中,所述冲正处理包括内部冲正处理和异步冲正处理;
获取所述消息队列中的冲正交易流水,将所述冲正交易流水存储至平台数据库中。
在实际应用中,所述事务管理平台可以通过DTM消息生产者记录各个服务节点集群进行冲正处理产生的冲正交易流水,并将所述冲正交易流水发送到DTM消息队列。所述DTM消息生产者可以是一个处理栈,嵌入在组合交易的处理链中,在组合交易处理的返回路径中,如果进入冲正处理,则会记录冲正交易流水并发送到DTM消息队列。
所述DTM消息队列是由Kafka中间件承载的一个消息队列主体,DTM消费者订阅并消费消息队列主体,进行后续处理。
DTM消费者是一个Kafka消费者客户端,运行在事务管理平台中。DTM消费者在消息队列中执行Kafka的poll操作,得到消息主体(即冲正交易流水),然后进行落库操作。在落库过程中,先根据主键(例如流水标识等)判断这个消息是否已经消费过,如果已经消费过则根据消息主体更新平台数据库中的冲正交易流水,如果是新消息就写入平台数据库。
本发明实施例使用消息队列对事务管理平台与服务节点集群解耦,所述事务管理平台独立于服务节点集群部署,使得服务管理平台可以同时对接多地多分区部署的不同服务节点集群,很好地满足金融类的分布式服务系统的需求。并且,冲正的发起、冲正交易流水的状态记录和更新等操作由异步冲正模块和事务管理平台负责,对参与业务服务的各个微服务没有入侵,降低了服务节点集群中的微服务开发的难度,并且可以兼容遗留系统(主要是指未进行分布式改造的系统,例如原主机上的交易核心系统)和外部系统(指归属于其他的组件的系统)的业务服务。
本发明实施例中,所述确定待处理的第一冲正交易流水可以包括:
对所述至少一个服务节点集群中异常交易的冲正交易流水的处理状态进行监控;
将处理状态异常的冲正交易流水作为待处理的第一冲正交易流水;
或者,
每经过第一预设时间间隔,从平台数据库中筛选满足第一预设条件的冲正交易流水作为待处理的第一冲正交易流水。
可选择地,当各个服务节点集群对异常交易的冲正交易流水进行异步冲正处理的过程中,所述事务管理平台可以对异常交易的冲正交易流水的处理状态进行监控,当所述冲正交易流水的处理状态异常,例如冲正处理中断、冲正处理暂停、冲正处理应该执行但未执行(即异步冲正次数小于第一预设次数但处理状态长时间未更新)或者冲正交易流水丢失等情况下,可以将该冲正交易流水作为待处理的第一冲正交易流水。
在实际应用中,通过消息队列发送冲正交易流水至事务管理平台时,可以将所述冲正交易流水对应的处理状态一起发送至事务管理平台,以使得所述事务管理平台可以对冲正交易流水的处理状态进行监控。通过利用事务管理平台对处理状态异常的冲正交易流水进行监控,并远程调用对应的服务节点集群对其进行异步冲正,能够进一步提高交易冲正的成功率。
可选择地,由于各个服务节点集群对异常交易的冲正交易流水进行异步冲正失败达到一定次数之后就不再重试,因此所述事务管理平台还可以按照所述第一预设时间间隔定时从平台数据库中筛选出满足第一预设条件的冲正处理的冲正交易流水,作为待处理的第一冲正交易流水。具体地,所述第一预设条件可以设置为异步冲正次数小于第二预设次数且距离上次冲正的时间间隔大于或等于第二预设时间。其中,所述第二预设次数大于所述第一预设次数,所述第二预设时间与所述第一预设时间可以相等,也可以不相等,在满足上述要求的情况下,所述第二预设次数和所述第二预设时间均可以根据实际情况进行设置,本发明实施例对此不作限制。
在实际应用中,所述事务管理平台可以包括至少一个DTM,为提高性能,所述事务管理平台中的各个DTM每次都会筛选出一批待处理的冲正交易流水,然后对这一批冲正交易流水进行逐笔处理,不同的DTM如果同时查询平台数据库有可能筛选出相同的冲正交易流水,此时可以采用分布式锁来解决这个并发问题。每个DTM在查询平台数据库之前先获取分布式锁,只有持有锁的DTM才可以查询平台数据库,每个DTM会将筛选出的冲正交易流水进行标记,例如将对应的处理状态修改为冲正处理中,下一个DTM不会再筛选处理状态为冲正处理中的冲正交易流水,从而保证了同一时间只有一个DTM在查询数据,且避免了多个DTM获得同一批数据的可能。
通过事务管理平台对多次冲正失败的交易进行接管,并且通过额外的重试机制继续按一定频率定时重试冲正,能够确保在造成冲正失败的原因消除后交易可以被自动冲正掉,进一步提高交易冲正的成功率。而且这部分额外的轮询判断所需的性能和资源消耗由一个单独的服务接管,不必改动系统微服务上原有的自我保护机制。
S220:获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识。
本发明实施例中,通过消息队列发送冲正交易流水至事务管理平台时,可以将产生所述冲正交易流水的服务节点集群对应的服务标识一起发送至事务管理平台,所述事务管理平台可以将所述服务标识与所述冲正交易流水对应存储于平台数据库中。
S230:向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识,所述冲正请求用于指示所述服务节点集群对所述第一冲正交易流水进行冲正处理。
本发明实施例中,所述事务管理平台可以通过远程调用的方式调用所述服务节点集群对所述第一冲正交易流水进行冲正,所述服务节点集群可以根据所述流水标识确定所述第一冲正交易流水,并对所述第一冲正交易流水进行冲正处理,将与所述第一冲正交易流水对应的交易信息恢复到交易操作前的状态。
在一个可能的实施例中,所述事务管理平台可以通过路由模块与所述至少一个服务节点集群通信连接;
所述向所述服务标识对应的服务节点集群发送冲正请求可以包括:
将所述服务标识和所述冲正请求发送至所述路由模块,以使得所述路由模块根据所述服务标识确定对应的服务节点集群,从所述服务节点集群中选取目标服务节点,将所述冲正请求发送至所述目标服务节点。
具体地,向所述服务标识对应的服务节点集群发送冲正请求的实现可以为一个微服务的远程调用过程,所述服务节点集群中的各个服务节点中运行一个专门用于接受冲正请求的微服务,所述事务管理平台可以先把所述服务标识和所述冲正请求发送到所述路由模块,所述路由模块将请求转发到从所述服务标识对应的服务节点集群中选取的目标服务节点中,所述目标服务节点中的微服务接收到所述冲正请求后,根据所述流水标识在自身节点上发起对所述第一冲正交易流水的冲正处理。其中,所述路由模块可以通过随机选取、轮询或者负载均衡等策略从所述服务标识对应的服务节点集群中选取一个服务节点作为目标服务节点。通过事务管理平台远程调用服务节点集群的方式可以充分利用集群的负载均衡机制,把冲正处理的工作分摊到服务节点集群中的服务节点上,避免出现某个服务节点一次处理大批冲正任务的现象,从而能够保证冲正处理的时效性和服务系统的稳定性。
综上所述,根据本发明实施例的交易冲正方法,通过事务管理平台来确定待处理的交易冲正流水及其对应的服务标识和流水标识,向所述服务标识对应的服务节点集群发送冲正请求,以使得所述服务节点集群基于所述流水标识对待处理的交易冲正流水进行冲正处理,实现了对交易冲正处理的统一管理,降低了承载业务的服务节点集群在交易冲正处理上的资源消耗和性能消耗,从而提高异步冲正的成功率,保证业务的最终一致性。
实施例2
参考说明书附图5,其示出了本发明一个实施例提供的一种交易冲正方法的流程,该方法可以应用于图1中的服务系统中,所述服务系统包括事务管理平台和与之通信连接的至少一个服务节点集群。具体的如图5所示,所述方法可以包括以下步骤:
S510:所述事务管理平台确定待处理的第一冲正交易流水;
S520:所述事务管理平台获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;
S530:所述事务管理平台向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识;
S540:所述服务节点集群接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理。
在一个可能的实施例中,所述事务管理平台通过路由模块与所述至少一个服务节点集群通信连接;
所述事务管理平台向所述服务标识对应的服务节点集群发送冲正请求(即步骤S530)可以包括:
所述事务管理平台将所述服务标识和所述冲正请求发送至所述路由模块;
所述路由模块根据所述服务标识确定对应的服务节点集群,从所述服务节点集群中选取目标服务节点,将所述冲正请求发送至所述目标服务节点;
相应地,所述服务节点集群接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理(步骤S540)可以包括:
所述目标服务节点接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理。
在一个可能的实施例中,所述方法还可以包括:
当发生异常交易时,所述服务节点集群对所述异常交易的交易流水进行内部冲正处理,得到内部冲正处理结果;
当所述内部冲正处理结果为冲正失败时,所述服务节点集群获取进行内部冲正处理产生的冲正交易流水,将所述冲正交易流水存储至集群数据库中。
在一个可能的实施例中,所述方法还可以包括:
所述服务节点集群对异常交易的冲正交易流水进行异步冲正处理,包括:
每经过第二预设时间间隔,所述服务节点集群从集群数据库中获取待处理的第二冲正交易流水;
所述服务节点集群对所述第二冲正交易流水进行冲正处理。
本发明实施例提供的交易冲正方法的各个步骤的具体内容可以参考如图2所示的方法实施例的内容,本发明实施例在此不再赘述。
综上所述,根据本发明实施例的交易冲正方法,通过事务管理平台来确定待处理的交易冲正流水及其对应的服务标识和流水标识,向所述服务标识对应的服务节点集群发送冲正请求,以使得所述服务节点集群基于所述流水标识对待处理的交易冲正流水进行冲正处理,实现了对交易冲正处理的统一管理,降低了承载业务的服务节点集群在交易冲正处理上的资源消耗和性能消耗,从而提高异步冲正的成功率,保证业务的最终一致性。
参考说明书附图6,其示出了本发明一个实施例提供的一种交易冲正装置600的结构,所述装置600可以设置于事务管理平台中,所述事务管理平台与至少一个服务节点集群通信连接。如图6所示,所述装置600可以包括:
流水确定模块610,用于确定待处理的第一冲正交易流水。
标识获取模块620,用于获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识。
请求发送模块630,用于向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识,所述冲正请求用于指示所述服务节点集群对所述第一冲正交易流水进行冲正处理。例如,所述请求发送模块630可以为远程调用模块。
可选择地,可以将所述流水确定模块610和所述标识获取模块620集成为定时任务模块,由定时任务模块实现上述各模块的功能。
也就是说,所述装置600可以包括定时任务模块和远程调用模块,由此实现上述各功能。
在一个可能的实施例中,所述事务管理平台通过路由模块与所述至少一个服务节点集群通信连接;
所述请求发送模块630可以用于将所述服务标识和所述冲正请求发送至所述路由模块,以使得所述路由模块根据所述服务标识确定对应的服务节点集群,从所述服务节点集群中选取目标服务节点,将所述冲正请求发送至所述目标服务节点。
在一个可能的实施例中,所述装置600还可以包括:
流水发送模块,用于获取所述至少一个服务节点集群进行冲正处理产生的冲正交易流水,将所述冲正交易流水发送至消息队列;其中,所述冲正处理包括内部冲正处理和异步冲正处理。例如,所述流水发送模块可以为消息生产者。
流水存储模块,用于获取所述消息队列中的冲正交易流水,将所述冲正交易流水存储至平台数据库中。例如,所述流水存储模块可以为消息消费者。
也就是说,所述装置600还可以包括消息生产者、消息队列和消息消费者,由此实现上述各功能。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与相应方法实施例属于同一构思,其具体实现过程详见对应方法实施例,这里不再赘述。
本发明一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的交易冲正方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例提供的方法实施例可以在终端、服务器或者类似的运算装置中执行,即上述电子设备可以包括终端、服务器或者类似的运算装置。以运行在服务器上为例,如图7所示,其示出了本发明实施例提供的实现交易冲正方法的服务器的结构示意图。该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Unit,CPU)710(例如,一个或一个以上处理器)和存储器730,一个或一个以上存储应用程序723或数据722的存储介质720(例如一个或一个以上海量存储设备)。其中,存储器730和存储介质720可以是短暂存储或持久存储。存储在存储介质720的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器710可以设置为与存储介质720通信,在服务器700上执行存储介质720中的一系列指令操作。服务器700还可以包括一个或一个以上电源760,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口740,和/或,一个或一个以上操作系统721,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口740可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器700的通信供应商提供的无线网络。在一个实例中,输入输出接口740包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口740可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯,所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
本领域技术人员可以理解,图7所示的结构仅为示意,服务器700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
本发明一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于电子设备之中以保存用于实现一种交易冲正方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的交易冲正方法。
可选地,在本发明实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本发明一个实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序包含用于执行本发明实施例所提供的交易冲正方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使得所述电子设备执行上述各种可选实施例中提供的交易冲正方法。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种交易冲正方法,其特征在于,应用于事务管理平台,所述事务管理平台与至少一个服务节点集群通信连接,所述方法包括:
确定待处理的第一冲正交易流水;
获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;
向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识,所述冲正请求用于指示所述服务节点集群对所述第一冲正交易流水进行冲正处理。
2.根据权利要求1所述的方法,其特征在于,所述确定待处理的第一冲正交易流水包括:
对所述至少一个服务节点集群中异常交易的冲正交易流水的处理状态进行监控;
将处理状态异常的冲正交易流水作为待处理的第一冲正交易流水;
或者,
每经过第一预设时间间隔,从平台数据库中筛选满足第一预设条件的冲正交易流水作为待处理的第一冲正交易流水。
3.根据权利要求1所述的方法,其特征在于,所述事务管理平台通过路由模块与所述至少一个服务节点集群通信连接;
所述向所述服务标识对应的服务节点集群发送冲正请求包括:
将所述服务标识和所述冲正请求发送至所述路由模块,以使得所述路由模块根据所述服务标识确定对应的服务节点集群,从所述服务节点集群中选取目标服务节点,将所述冲正请求发送至所述目标服务节点。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述至少一个服务节点集群进行冲正处理产生的冲正交易流水,将所述冲正交易流水发送至消息队列;其中,所述冲正处理包括内部冲正处理和异步冲正处理;
获取所述消息队列中的冲正交易流水,将所述冲正交易流水存储至平台数据库中。
5.一种交易冲正方法,其特征在于,应用于服务系统,所述服务系统包括事务管理平台和与之通信连接的至少一个服务节点集群,所述方法包括:
所述事务管理平台确定待处理的第一冲正交易流水;
所述事务管理平台获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;
所述事务管理平台向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识;
所述服务节点集群接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理。
6.根据权利要求5所述的方法,其特征在于,所述事务管理平台通过路由模块与所述至少一个服务节点集群通信连接;
所述事务管理平台向所述服务标识对应的服务节点集群发送冲正请求包括:
所述事务管理平台将所述服务标识和所述冲正请求发送至所述路由模块;
所述路由模块根据所述服务标识确定对应的服务节点集群,从所述服务节点集群中选取目标服务节点,将所述冲正请求发送至所述目标服务节点;
相应地,所述服务节点集群接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理包括:
所述目标服务节点接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当发生异常交易时,所述服务节点集群对所述异常交易的交易流水进行内部冲正处理,得到内部冲正处理结果;
当所述内部冲正处理结果为冲正失败时,所述服务节点集群获取进行内部冲正处理产生的冲正交易流水,将所述冲正交易流水存储至集群数据库中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述服务节点集群对异常交易的冲正交易流水进行异步冲正处理,包括:
每经过第二预设时间间隔,所述服务节点集群从集群数据库中获取待处理的第二冲正交易流水;
所述服务节点集群对所述第二冲正交易流水进行冲正处理。
9.一种交易冲正装置,设置于事务管理平台中,所述事务管理平台与至少一个服务节点集群通信连接,其特征在于,所述装置包括:
流水确定模块,用于确定待处理的第一冲正交易流水;
标识获取模块,用于获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;
请求发送模块,用于向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识,所述冲正请求用于指示所述服务节点集群对所述第一冲正交易流水进行冲正处理。
10.一种服务系统,其特征在于,包括事务管理平台和与之通信连接的至少一个服务节点集群;
所述事务管理平台用于确定待处理的第一冲正交易流水;获取所述第一冲正交易流水对应的服务标识和流水标识,所述服务标识用于对产生所述第一冲正交易流水的服务节点集群进行标识,所述流水标识用于对所述第一冲正交易流水进行标识;向所述服务标识对应的服务节点集群发送冲正请求,所述冲正请求包括所述流水标识;
所述服务节点集群用于接收所述冲正请求,根据所述流水标识对所述第一冲正交易流水进行冲正处理,将与所述第一冲正交易流水对应的交易信息恢复到交易操作前的状态。
11.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-4任意一项所述的交易冲正方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如权利要求1-4任意一项所述的交易冲正方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1-4任意一项所述的交易冲正方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111369880.6A CN113962813A (zh) | 2021-11-18 | 2021-11-18 | 一种交易冲正方法、装置、服务系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111369880.6A CN113962813A (zh) | 2021-11-18 | 2021-11-18 | 一种交易冲正方法、装置、服务系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113962813A true CN113962813A (zh) | 2022-01-21 |
Family
ID=79471246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111369880.6A Pending CN113962813A (zh) | 2021-11-18 | 2021-11-18 | 一种交易冲正方法、装置、服务系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113962813A (zh) |
-
2021
- 2021-11-18 CN CN202111369880.6A patent/CN113962813A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112118565B (zh) | 多租户服务灰度发布方法、装置、计算机设备和存储介质 | |
US7831734B2 (en) | Method and system for remote configuration of network devices | |
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
US11223522B1 (en) | Context-based intelligent re-initiation of microservices | |
CN110032444B (zh) | 一种分布式系统及分布式任务处理方法 | |
CN101262498A (zh) | 一种分布式调用消息的方法和装置 | |
CN111784329B (zh) | 业务数据的处理方法和装置、存储介质、电子装置 | |
CN110391940A (zh) | 服务地址的响应方法、装置、系统、设备和存储介质 | |
US10768974B2 (en) | Specifying an order of a plurality of resources in a transaction according to distance | |
CN112559461A (zh) | 文件传输方法及装置、存储介质及电子设备 | |
CN112486707A (zh) | 基于Redis的消息异步消费方法及装置 | |
CN110740145A (zh) | 消息消费方法、装置、存储介质及电子设备 | |
CN111541762A (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN113962813A (zh) | 一种交易冲正方法、装置、服务系统、设备及存储介质 | |
CN112596801A (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN112804313B (zh) | 基于跨域边缘节点的数据同步方法、装置、设备及介质 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN116821215A (zh) | 基于端口查询的opc ua服务器搜索方法 | |
CN111431951B (zh) | 一种数据处理方法、节点设备、系统及存储介质 | |
CN114697334A (zh) | 一种编排任务的执行方法和装置 | |
CN108683612B (zh) | 一种消息获取方法和装置 | |
CN109831361A (zh) | 一种分布式调试方法、系统及装置 | |
CN114584629B (zh) | 一种交易报文处理方法及装置 | |
US11599387B2 (en) | Re-initiation of microservices utilizing context information provided via service calls | |
CN112801769B (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 |