【技术实现步骤摘要】
分布式事务处理方法及装置
本专利技术涉及分布式系统
,特别是涉及一种分布式事务处理方法及装置。
技术介绍
随着分布式技术在银行交易系统的逐渐使用,不可避免的会出现一个交易需要跨多个数据库或者跨多个子系统(微服务)并保证事务的情况。由于这些资源在物理上是完全独立的,所以要保证分布式下事务的原子性、一致性、隔离性以及持久性的控制就变得非常复杂。举例来说,假设有一个交易为A给B转账200元,大致流程如下:1)交易开始2)调用转出服务,A转出200元;3)调用转入服务,B转入200元;4)交易结束在分布式系统中,转入、转出服务可能位于不同的进程;或者A、B账户位于不同的数据库。并且每个步骤都有失败或异常的可能。这种情况下数据库自身的本地事务无法保证上述的两个步骤全部成功或全部失败。业内目前现有的解决分布式事务问题的方案有:XA两阶段提交协议(2PC),TCC(Try-Confirm-Cancel)等。XA两阶段提交协议:基于2PC的分布式事务处理过程如下:在第一阶段,事务协调节点向所有事务参与者发送“准备”请求,如果所有事务参与者均返回“准备成功”,则在第二阶段,协调节点向所有参与者发送“提交”请求。各参与者在接收到上述“提交”请求之后,执行相应的数据处理子操作。如果在第一阶段,有任一参与者返回“准备失败”,则协调节点向所有参与者发送“回滚”请求。TCC(Try-Confirm-Cancel):TCC方案在服务层实现两阶段协议,将一个完整的流程从业 ...
【技术保护点】
1.一种分布式事务处理方法,应用于全局事务应用服务器,其特征在于,包括:/n请求全局事务管理器记录事务的全局事务信息,并获取全局事务管理器返回的全局事务唯一标识;/n执行全局事务中所有事务分支操作;/n如果全局事务任意一个事务分支执行失败,请求全局事务管理器进行全局事务回滚;/n如果全局事务所有事务分支对应的本地事务都提交成功,请求全局事务管理器进行全局事务提交。/n
【技术特征摘要】
1.一种分布式事务处理方法,应用于全局事务应用服务器,其特征在于,包括:
请求全局事务管理器记录事务的全局事务信息,并获取全局事务管理器返回的全局事务唯一标识;
执行全局事务中所有事务分支操作;
如果全局事务任意一个事务分支执行失败,请求全局事务管理器进行全局事务回滚;
如果全局事务所有事务分支对应的本地事务都提交成功,请求全局事务管理器进行全局事务提交。
2.根据权利要求1所述的分布式事务处理方法,其特征在于,还包括:
向全局事务管理器请求全局事务回滚。
3.一种分布式事务处理方法,应用于事务分支应用服务器,其特征在于,包括:
请求全局事务管理器记录事务分支的事务分支信息,并获取全局事务管理器返回的事务分支唯一标识;
对事务分支数据源执行的SQL进行拦截并解析;
根据解析结果生成SQL的前镜像记录;
执行SQL;
根据执行结果生成SQL的后镜像记录;
根据全局事务唯一标识向全局事务管理器注册事务分支,并获取全局事务管理器返回的事务分支唯一标识;
根据事务分支唯一标识,持久化当前事务分支中的前镜像记录及后镜像记录,作为回滚日志;
提交本地事务,并释放本地事务对应的连接资源。
4.根据权利要求3所述的分布式事务处理方法,其特征在于,对事务分支数据源执行的SQL进行拦截并解析,包括:
根据SQL的解析结果,向逻辑锁模块查询所需数据是否被其它事务锁定。
5.根据权利要求3所述的分布式事务处理方法,其特征在于,还包括:
在提交本地事务之前,根据SQL的前镜像记录及后镜像记录,请求逻辑锁模块加锁。
6.根据权利要求3所述的分布式事务处理方法,其特征在于,还包括:
如果事务分支执行失败,根据回滚日志进行事务回滚。
7.根据权利要求3所述的分布式事务处理方法,其特征在于,还包括:
获取全局事务管理器根据事务分支注册信息下发的事务分支提交命令;
根据事务分支提交命令,清除回滚日志。
8.根据权利要求3所述的分布式事务处理方法,其特征在于,还包括:
获取全局事务管理器根据事务分支注册信息下发的事务分支回滚命令;
根据事务分支回滚命令,锁定查询此事务分支修改过的任意一行记录数据;
如果锁定查询失败,中断当前事务分支回滚,并等待全局事务管理器重新发起事务分支回滚命令;
根据事务分支回滚命令,匹配对应的回滚日志;
根据回滚日志,执行事务分支回滚操作。
9.根据权利要求3所述的分布式事务处理方法,其特征在于,根据执行结果生成SQL的后镜像记录,包括:
如果所执行SQL为INSERT或UPDATE语句,尝试根据前像数据及SQL解析结果进行计算;
无法计算或计算失败,再根据SQL解析结果生成后像查询语句进行后像查询。
10.根据权利要求3所述的分布式事务处理方法,其特征在于,根据执行...
【专利技术属性】
技术研发人员:范凯杰,薛春雨,
申请(专利权)人:神州数码融信软件有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。