分布式事务处理方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:22641550 阅读:34 留言:0更新日期:2019-11-26 16:08
本说明书实施例提供了一种分布式事务处理方法、装置、计算机设备及存储介质,该方法包括:从消息队列中获取事务消息;根据所述事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认所述事务消息的消费状态;如果所述事务消息的消费状态为消费成功或消费中,则放弃执行所述事务消息对应的消费方法。本说明书实施例可以提高实现分布式事务可靠消息消费幂等性的通用性。

Distributed transaction processing method, device, computer equipment and storage medium

The embodiment of the specification provides a distributed transaction processing method, device, computer device and storage medium, the method includes: obtaining transaction messages from the message queue; querying the corresponding relationship table between the message ID and consumption status according to the message ID of the transaction message to confirm the consumption status of the transaction message; if the consumption status of the transaction message is If the consumption is successful or in consumption, the consumption method corresponding to the transaction message is abandoned. The embodiment of the specification can improve the generality of realizing the idempotence of reliable message consumption of distributed transactions.

【技术实现步骤摘要】
分布式事务处理方法、装置、计算机设备及存储介质
本说明书涉及分布式事务处理
,尤其是涉及一种分布式事务处理方法、装置、计算机设备及存储介质。
技术介绍
基于可靠消息的分布式事务是将消息绑定在分布式事务中,保证事务与消息一致性的一种解决方案,目前已广泛应用于分布式业务后台系统中。在该解决方案中,事务的发起方在业务处理前,发送一条包含请求参数的消息给可靠消息服务,消息状态为待确认;业务处理成功,通知可靠消息服务,将消息状态更新为已确认并将消息发送到消息队列。消息消费方从消息队列接收到消息,进行业务处理,处理完成后通知可靠消息服务,将消息状态更新为已完成。如果可靠消息服务超时未收到消费方通知,主动发起重试,将消息重新发送,消费方会收到重复消息。此时消费方业务逻辑需要保证幂等性,防止重复处理,比如防止重复入账。然而,本专利技术的专利技术人发现,上述解决方案中,每个消息消费方都需要自行实现幂等性,并且每个消费方的幂等性实现,都必须深入理解业务需求,是否成功的完成了业务处理。因此,现有技术实现分布式事务可靠消息消费幂等性的通用性不高。
技术实现思路
本说明书实施例的目的在于提供一种分布式事务处理方法、装置、计算机设备及存储介质,以提高实现分布式事务可靠消息消费幂等性的通用性。为达到上述目的,一方面,本说明书实施例提供了一种分布式事务处理方法,包括:从消息队列中获取事务消息;根据所述事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认所述事务消息的消费状态;>如果所述事务消息的消费状态为消费成功或消费中,则放弃执行所述事务消息对应的消费方法。本说明书实施例的分布式事务处理方法,还包括:如果所述事务消息的消费状态为消费失败,则重新执行所述事务消息对应的消费方法。本说明书实施例的分布式事务处理方法,还包括:如果所述对应关系表中不存在所述事务消息的消费状态,则新增对应关系,将所述事务消息的消费状态置为消费中,并执行所述事务消息对应的消费方法。本说明书实施例的分布式事务处理方法,还包括:根据所述消费方法的执行结果,更新所述对应关系表中的消费状态。本说明书实施例的分布式事务处理方法,还包括:将所述消费方法的执行结果提供给可靠消息服务方,以便于所述可靠消息服务方据此更新所述消息队列。另一方面,本说明书实施例还提供了一种分布式事务处理装置,包括:消息获取模块,用于从消息队列中获取事务消息;关系查询模块,用于根据所述事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认所述事务消息的消费状态;执行控制模块,用于当所述事务消息的消费状态为消费成功或消费中时,放弃执行所述事务消息对应的消费方法。本说明书实施例的分布式事务处理装置,所述执行控制模块还用于:当所述事务消息的消费状态为消费失败时,重新执行所述事务消息对应的消费方法。本说明书实施例的分布式事务处理装置,所述执行控制模块还用于:当所述对应关系表中不存在所述事务消息的消费状态时,新增对应关系,将所述事务消息的消费状态置为消费中,并执行所述事务消息对应的消费方法。本说明书实施例的分布式事务处理装置,还包括:状态更新模块,用于根据所述消费方法的执行结果,更新所述对应关系表中的消费状态。本说明书实施例的分布式事务处理装置,还包括:结果反馈模块,用于将所述消费方法的执行结果提供给可靠消息服务方,以便于所述可靠消息服务方根据所述执行结果更新所述消息队列。另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行上述的分布式事务处理方法。另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的分布式事务处理方法。由以上本说明书实施例提供的技术方案可见,在本说明书实施例中,当从消息队列中获取到事务消息时,可以根据事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认事务消息的消费状态。如果事务消息的消费状态为消费成功或消费中,则放弃执行事务消息对应的消费方法,从而可以防止消费成功或消费中的事务被重复执行,进而保证了事务与消息一致性。而且,由于本说明书实施例中可以通过查询对应关系表,来确认事务消息的消费状态,而不需要每个消费方根据各自的业务逻辑自行实现消费幂等性,从而提高了实现分布式事务可靠消息消费幂等性的通用性。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本说明书一些实施例中分布式事务处理方法的流程图;图2为本说明书另一些实施例中分布式事务处理方法的流程图;图3为本说明书一些实施例中分布式事务处理装置的结构框图;图4为本说明书一些实施例中实施例的结构框图。具体实施方式为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。本说明书一些实施例的分布式事务处理方法,可以应用于分布式系统中的消费方业务系统。参考图1所示,本说明书一些实施例的分布式事务处理方法可以包括以下步骤:S101、从消息队列中获取事务消息;S102、根据所述事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认所述事务消息的消费状态;S103、如果所述事务消息的消费状态为消费成功或消费中,则放弃执行所述事务消息对应的消费方法。由此可见,在本说明书实施例中,当从消息队列中获取到事务消息时,可以根据事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认事务消息的消费状态。如果事务消息的消费状态为消费成功或消费中,则放弃执行事务消息对应的消费方法,从而可以防止消费成功或消费中的事务被重复执行,进而保证了事务与消息一致性。而且,由于本说明书实施例中可以通过查询对应关系表,来确认事务消息的消费状态,而不需要每个消费方根据各自的业务逻辑自行实现消费幂等性,从而提高了实现分布式事务可靠事务消息消费幂等性的通用性。在本说明书一些实施例中,分布式系统中的可靠消息服务方可以将,待确认或超时未获得消费方响应的事务消息,发送到消息队列。本说明书实施例中对于消息队列没有限制,在一些示例性实施例中,消息队列例如可以为顺序队列或循环队列等。在本文档来自技高网...

【技术保护点】
1.一种分布式事务处理方法,其特征在于,包括:/n从消息队列中获取事务消息;/n根据所述事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认所述事务消息的消费状态;/n如果所述事务消息的消费状态为消费成功或消费中,则放弃执行所述事务消息对应的消费方法。/n

【技术特征摘要】
1.一种分布式事务处理方法,其特征在于,包括:
从消息队列中获取事务消息;
根据所述事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认所述事务消息的消费状态;
如果所述事务消息的消费状态为消费成功或消费中,则放弃执行所述事务消息对应的消费方法。


2.如权利要求1所述的分布式事务处理方法,其特征在于,还包括:
如果所述事务消息的消费状态为消费失败,则重新执行所述事务消息对应的消费方法。


3.如权利要求1所述的分布式事务处理方法,其特征在于,还包括:
如果所述对应关系表中不存在所述事务消息的消费状态,则新增对应关系,将所述事务消息的消费状态置为消费中,并执行所述事务消息对应的消费方法。


4.如权利要求2或3所述的分布式事务处理方法,其特征在于,还包括:
根据所述消费方法的执行结果,更新所述对应关系表中的消费状态。


5.如权利要求2或3所述的分布式事务处理方法,其特征在于,还包括:
将所述消费方法的执行结果提供给可靠消息服务方,以便于所述可靠消息服务方据此更新所述消息队列。


6.一种分布式事务处理装置,其特征在于,包括:
消息获取模块,用于从消息队列中获取事务消息;
关系查询模块,用于根据所述事务消息的消息标识,查询消息标识与消费状态的对应关系表,以确认所述事务消息的消费状态;
执行控制...

【专利技术属性】
技术研发人员:曹辉健滕达隋臣王宇轩
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1