一种分布式事务处理方法及装置制造方法及图纸

技术编号:18444691 阅读:33 留言:0更新日期:2018-07-14 10:17
本发明专利技术公开了一种分布式事务处理方法及装置,包括:消息服务器在接收到第一业务端的第一提交结果后,再将第一操作数据发送给第二业务端,第二业务端才开始执行第二本地事务,这样,将全局事务演变为了多个本地事务,每个业务端的业务的执行无需锁定系统资源,节省了系统资源。并且,在保障全局事务一致性的前提下,当存在多个并发业务端时,提高了事务执行的效率,提高了高并发事务的容忍度。除此之外,在消息服务器中创建监控消息队列,监控消息服务器和各个业务端之间的所有的交互信息,并将交互信息发送给相应的业务端,这样降低了各业务端之间的耦合性,进而保障了全局事务的一致性。

A distributed transaction processing method and device

The invention discloses a distributed transaction processing method and device, including: the message server sends the first operation data to the second business end after receiving the first submission result of the first business end, and the second business end begins to execute the second local transaction, so that the global transaction is evolved to multiple local transactions. There is no need to lock system resources for each business side's execution and save system resources. In addition, under the premise of ensuring global transaction consistency, when there are multiple concurrent business ends, the efficiency of transaction execution is improved and the tolerance of high concurrent transactions is improved. In addition, it creates a monitoring message queue in the message server, monitors all the interactive information between the message server and each business end, and sends the interactive information to the corresponding business end, thus reducing the coupling between the various business ends, and thus ensuring the consistency of the global affairs.

【技术实现步骤摘要】
一种分布式事务处理方法及装置
本专利技术涉及分布式事务领域,尤其涉及一种分布式事务处理方法及装置。
技术介绍
事务是指作为单个逻辑工作单元执行的一系列操作,要买完全的执行要么完全不执行,即要么保证全部成功,要不全部失败,不能出现部分成功的情况。例如:通过银行转账,从A账户转100块钱到B账户为一个事务,该事物若是提交成功,必须保证A账户扣除100块钱,同时B账户增加100块钱;或者由于某些原因该事物提交事变,也就是转账不成功,该情况下,A账户不能扣掉100块钱,B账户也不能增加100块钱;这样才可以保障事务的一致性。分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理服务器分别位于不同的分布式系统的不同节点上,简单的说,指一个事务可能涉及多个数据库操作,分布式事务处理的关键是必须保证多个数据库的操作要么都成功,要么都失败。针对于分布式事务,现有技术中通常采用XA协议。其中,XA协议是指由X/Open组织提出的作为资源管理器与事务管理器之间进行通信的接口标准的分布式交易处理规范。XA协议一般包括两个阶段:第一阶段:交易中间件请求所有相关数据库准备提交(即预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交后,查看是否能够执行该提交操作,并将预提交结果记录下来,并将预提交结果反馈给交易中间件;第二阶段:当交易中间件接收到所有的数据库反馈的预提交结果后,若是全部都可以提交,则通知所有的数据库执行提交,若是其中任何一个数据库反馈的预提交结果为提交失败时,通知其它的数据库执行回滚的操作。但是,所有的异构数据库必须支持XA协议,但是不是有的数据库都支持XA协议;并且,所有的数据库在执行预提交操作时,需要锁定资源管理器的资源,这样严重耗费,并且在存在多个并发事务的情况下,高并发事务的容忍度低。
技术实现思路
有鉴于此,本专利技术实施例提供了一种分布式事务处理方法及装置,解决了现有技术中,现有的方法的通用性差,耗费系统资源以及高并发事务容忍度低的问题。本专利技术公开了一种分布式事务处理方法,所述方法应用于消息服务器,包括:接收第一业务端发送的第一操作的数据;当接收到所述第一业务端发送的第一本地事务的第一提交结果时,在所述第一提交结果为提交成功的情况下,将所述第一操作的数据发送给第二业务端;所述第二业务端包括至少一个业务端;所述第一提交结果为所述第一业务端根据所述第一操作的数据执行第一本地事务的结果;当接收到任何一个第二业务端发送的第二本地事务的第二提交结果后,将所述第二提交结果对应的处理消息反馈给其它的第二业务端和所述第一业务端,以使所述第一业务端和其它的业务端根据所述消息执行相应的操作;所述第二提交结果为所述第二业务端根据所述第一操作的数据执行第二本地事务的结果。可选的,在接收到第一业务端发送的第一操作的数据后,还包括:建立监听消息队列,所述监听消息队列用于监听所述第一业务端和所述消息服务器的交互信息,以及所述第二业务端和所述消息服务器的交互信息,并在接收到交互信息后反馈给相应的业务端。可选的,还包括:当监听到所述消息服务器成功接收到了所述第一业务端的第一操作的数据后,向所述第一业务端反馈第一监听信息,以使所述第一业务端在接收到所述的第一监听信息后根据所述第一操作的数据执行第一本地事务。可选的,还包括:监听是否接收到所述第二业务端发送的预制结果;当接收到所述第二业务端发送的预制结果后,向所述第二业务端反馈第二监听信息,以使所述第二业务端依据所述第一操作的数据执行第二本地事务。可选的,在向所述第二业务端反馈第二监听信息之前,所述方法还包括:在预设的标识数据库中记录所述第一操作的标识。可选的,所述方法还包括:在所述消息服务器重新恢复工作的情况下,获取所述消息服务器中的所有第二操作,得到第二操作组;将所述第二操作组与所述标识数据库进行差异性计算,得到所述标识数据库中不包含的第三操作;所述第三操作属于第二操作组;将所述第三操作的数据发送给所述第二业务端。可选的,所述方法还包括:定期查询是否接收到第一操作的数据对应的第一提交结果;若未接收到所述第一操作数据对应的第一提交结果,向所述第一业务端核查所述第一操作的数据的执行情况。可选的,还包括:定期查询是否接收到第一操作的数据对应的第二提交结果;若未接收到所述第一操作数据对应的第二提交结果,向所述第二业务端核查所述第一操作的数据的执行情况。可选的,所述当接收到任何一个第二业务端发送的第二本地事务的第二提交结果后,将所述第二提交结果对应的消息反馈给其它的第二业务端和所述第一业务端,以使所述第一业务端和其它的业务端根据所述消息执行相应的操作,包括:当任何一个第二业务端发送的第二本地事务的第二提交结果为驳回的情况下,向其它的第二业务端器和所述第一业务端器反馈回滚消息,以使所述其它的第二业务端器和所述第一业务端器执行回滚操作。可选的,还包括:当向所述第一业务端器发送所述第二本地事务的执行结果对应的消息后,删除所述标识数据库中所述第一操作的标识。本专利技术实施例还提供了一种分布式事务处理装置,所述装置应用于消息服务器,包括:接收单元,用于接收第一业务端发送的第一操作的数据;第一发送单元,用于当接收到所述第一业务端发送的第一本地事务的第一提交结果时,在所述第一提交结果为本地提交的情况下,将所述第一操作的数据发送给第二业务端;所述第二业务端包括至少一个业务端;所述第一提交结果为所述第一业务端根据所述第一操作的数据执行第一本地事务的结果;反馈单元,用于当接收到任何一个第二业务端发送的第二本地事务的第二提交结果后,将所述第二提交结果对应的处理消息反馈给其它的第二业务端和所述第一业务端,以使所述第一业务端和其它的业务端根据所述消息执行相应的操作;所述第二提交结果为所述第二业务端根据所述第一操作的数据执行第二本地事务的结果。可选的,还包括:消息队列建立单元,用于建立监听消息队列,所述监听消息队列用于监听所述第一业务端和所述消息服务器的交互信息,以及所述第二业务端和所述消息服务器的交互信息,并在接收到交互信息后反馈给相应的业务端。有鉴于此,本专利技术实施例提供了一种分布式事务处理方法及装置,包括:接收第一业务端发送的第一操作的数据;当接收到所述第一业务端发送的第一本地事务的第一提交结果时,在所述第一提交结果为本地提交的情况下,将所述第一操作的数据发送给第二业务端;所述第二业务端包括至少一个业务端;所述第一提交结果为所述第一业务端根据所述第一操作的数据执行第一本地事务的结果;当接收到任何一个第二业务端发送的第二本地事务的第二提交结果后,将所述第二提交结果对应的处理消息反馈给其它的第二业务端和所述第一业务端,以使所述第一业务端和其它的业务端根据所述消息执行相应的操作;所述第二提交结果为所述第二业务端根据所述第一操作的数据执行第二本地事务的结果。由此,实施例通过在第一业务端执行完了第一本地事务后,并且消息服务器接收到第一提交结果后,再将第一操作数据发送给第二业务端,第二业务端才开始执行第二本地事务,这样,将一个全局事务划分成多个本地事务,无需锁定系统资源,并且,在保障全局事务一致性的前提下,当存在多个并发业务端时,提高了事务执行的效率。除此之外,在消息服务器中本文档来自技高网
...

【技术保护点】
1.一种分布式事务处理方法,其特征在于,所述方法应用于消息服务器,包括:接收第一业务端发送的第一操作的数据;当接收到所述第一业务端发送的第一本地事务的第一提交结果时,在所述第一提交结果为提交成功的情况下,将所述第一操作的数据发送给第二业务端;所述第二业务端包括至少一个业务端;所述第一提交结果为所述第一业务端根据所述第一操作的数据执行第一本地事务的结果;当接收到任何一个第二业务端发送的第二本地事务的第二提交结果后,将所述第二提交结果对应的处理消息反馈给其它的第二业务端和所述第一业务端,以使所述第一业务端和其它的业务端根据所述消息执行相应的操作;所述第二提交结果为所述第二业务端根据所述第一操作的数据执行第二本地事务的结果。

【技术特征摘要】
1.一种分布式事务处理方法,其特征在于,所述方法应用于消息服务器,包括:接收第一业务端发送的第一操作的数据;当接收到所述第一业务端发送的第一本地事务的第一提交结果时,在所述第一提交结果为提交成功的情况下,将所述第一操作的数据发送给第二业务端;所述第二业务端包括至少一个业务端;所述第一提交结果为所述第一业务端根据所述第一操作的数据执行第一本地事务的结果;当接收到任何一个第二业务端发送的第二本地事务的第二提交结果后,将所述第二提交结果对应的处理消息反馈给其它的第二业务端和所述第一业务端,以使所述第一业务端和其它的业务端根据所述消息执行相应的操作;所述第二提交结果为所述第二业务端根据所述第一操作的数据执行第二本地事务的结果。2.根据权利要求1所述的方法,其特征在于,在接收到第一业务端发送的第一操作的数据后,还包括:建立监听消息队列,所述监听消息队列用于监听所述第一业务端和所述消息服务器的交互信息,以及所述第二业务端和所述消息服务器的交互信息,并在接收到交互信息后反馈给相应的业务端。3.根据权利要求2所述的方法,其特征在于,还包括:当监听到所述消息服务器成功接收到了所述第一业务端的第一操作的数据后,向所述第一业务端反馈第一监听信息,以使所述第一业务端在接收到所述的第一监听信息后根据所述第一操作的数据执行第一本地事务。4.根据权利要求2所述的方法,其特征在于,还包括:监听是否接收到所述第二业务端发送的预制结果;当接收到所述第二业务端发送的预制结果后,向所述第二业务端反馈第二监听信息,以使所述第二业务端依据所述第一操作的数据执行第二本地事务。5.根据权利要求4所述的方法,其特征在于,在向所述第二业务端反馈第二监听信息之前,所述方法还包括:在预设的标识数据库中记录所述第一操作的标识。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在所述消息服务器重新恢复工作的情况下,获取所述消息服务器中的所有第二操作,得到第二操作组;将所述第二操作组与所述标识数据库进行差异性计算,得到所述标识数据库中不包含的第三操作;所述第三操作属于第二操作组;将所述第三操作的数据发送给所述第二业务端。7.根据权利要求1所述的方法,其特征在于,所述方法...

【专利技术属性】
技术研发人员:郝长久赵贵阳周春楠
申请(专利权)人:亿阳安全技术有限公司
类型:发明
国别省市:北京,11

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

1