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协议一般包括两个阶段:第一阶段:交易中间件请求所有相关数据库准备提交(即预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交后,查看是否能够执行该提交操作,并将预提交结果记录下来,并将预提交结果反馈给交易中间件;第二阶段:当交易中间件接收到所有的数据库反馈的预提交结果后,若是全部都可以提交,则通知所有的数据库执行提交,若是其中任何一个数据库反馈的预提交结果为提交失败时,通知其它的数据库执行回滚的操作。但是,所有的异构数据 ...
【技术保护点】
1.一种分布式事务处理方法,其特征在于,所述方法应用于消息服务器,包括:接收第一业务端发送的第一操作的数据;当接收到所述第一业务端发送的第一本地事务的第一提交结果时,在所述第一提交结果为提交成功的情况下,将所述第一操作的数据发送给第二业务端;所述第二业务端包括至少一个业务端;所述第一提交结果为所述第一业务端根据所述第一操作的数据执行第一本地事务的结果;当接收到任何一个第二业务端发送的第二本地事务的第二提交结果后,将所述第二提交结果对应的处理消息反馈给其它的第二业务端和所述第一业务端,以使所述第一业务端和其它的业务端根据所述消息执行相应的操作;所述第二提交结果为所述第二业务端根据所述第一操作的数据执行第二本地事务的结果。
【技术特征摘要】
1.一种分布式事务处理方法,其特征在于,所述方法应用于消息服务器,包括:接收第一业务端发送的第一操作的数据;当接收到所述第一业务端发送的第一本地事务的第一提交结果时,在所述第一提交结果为提交成功的情况下,将所述第一操作的数据发送给第二业务端;所述第二业务端包括至少一个业务端;所述第一提交结果为所述第一业务端根据所述第一操作的数据执行第一本地事务的结果;当接收到任何一个第二业务端发送的第二本地事务的第二提交结果后,将所述第二提交结果对应的处理消息反馈给其它的第二业务端和所述第一业务端,以使所述第一业务端和其它的业务端根据所述消息执行相应的操作;所述第二提交结果为所述第二业务端根据所述第一操作的数据执行第二本地事务的结果。2.根据权利要求1所述的方法,其特征在于,在接收到第一业务端发送的第一操作的数据后,还包括:建立监听消息队列,所述监听消息队列用于监听所述第一业务端和所述消息服务器的交互信息,以及所述第二业务端和所述消息服务器的交互信息,并在接收到交互信息后反馈给相应的业务端。3.根据权利要求2所述的方法,其特征在于,还包括:当监听到所述消息服务器成功接收到了所述第一业务端的第一操作的数据后,向所述第一业务端反馈第一监听信息,以使所述第一业务端在接收到所述的第一监听信息后根据所述第一操作的数据执行第一本地事务。4.根据权利要求2所述的方法,其特征在于,还包括:监听是否接收到所述第二业务端发送的预制结果;当接收到所述第二业务端发送的预制结果后,向所述第二业务端反馈第二监听信息,以使所述第二业务端依据所述第一操作的数据执行第二本地事务。5.根据权利要求4所述的方法,其特征在于,在向所述第二业务端反馈第二监听信息之前,所述方法还包括:在预设的标识数据库中记录所述第一操作的标识。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在所述消息服务器重新恢复工作的情况下,获取所述消息服务器中的所有第二操作,得到第二操作组;将所述第二操作组与所述标识数据库进行差异性计算,得到所述标识数据库中不包含的第三操作;所述第三操作属于第二操作组;将所述第三操作的数据发送给所述第二业务端。7.根据权利要求1所述的方法,其特征在于,所述方法...
【专利技术属性】
技术研发人员:郝长久,赵贵阳,周春楠,
申请(专利权)人:亿阳安全技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。