[发明专利]跨进程分布式事务控制方法及相关系统有效
申请号: | 201610083820.0 | 申请日: | 2016-02-06 |
公开(公告)号: | CN107045454B | 公开(公告)日: | 2020-06-26 |
发明(设计)人: | 周俊杰;王世军 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 跨进 分布式 事务 控制 方法 相关 系统 | ||
1.一种跨进程分布式事务控制方法,其特征在于,基于跨进程分布式事务控制系统,所述系统包括全局事务快照器和至少两个事务管理器,所述至少两个事务管理器之间通过远程过程调用协议RPC通信;所述方法包括:
第一事务管理器创建包括全局事务标识id和全局事务状态的全局事务上下文;所述第一事务管理器为与第一服务对应的事务管理器;所述第一服务为首先调用的服务;
所述第一事务管理器通过所述RPC将创建的全局事务上下文发送给第二事务管理器;所述第二事务管理器为所述跨进程分布式事务控制系统中除第一事务管理器的其他事务管理器;
所述第二事务管理器将第二服务发起的分布式事务作为子事务,使用子事务相关信息更新所述全局事务上下文,并通过所述RPC将更新后的全局事务上下文发送给所述第一事务管理器;所述子事务相关信息至少包括子事务id,所述第二服务为与所述第二事务管理器对应的服务;
响应于第一事务提交请求,所述第一事务管理器通过所述全局事务快照器将所述更新的全局事务上下文发送至消息中间件MQ,并通过所述RPC通知所述第二事务管理器提交子事务;所述第一事务提交请求是所述第一服务在完成业务逻辑后发起的;
响应于第二事务提交请求以及所述第一事务管理器的通知,所述第二事务管理器进行子事务提交;所述第二事务提交请求是所述第二服务在完成业务逻辑后发起的;
在所述第二事务管理器成功提交子事务后,所述第一事务管理器提交主事务;
在提交主事务成功后,所述第一事务管理器通过所述全局事务快照器通知所述MQ将所述全局事务上下文中的全局事务状态更改为完成。
2.如权利要求1所述的方法,其特征在于,其特征在于,在所述第一事务管理器创建所述全局事务上下文之前,还包括:所述第一事务管理器判断是否未开启全局事务;
所述创建包括全局事务id和全局事务状态的全局事务上下文的操作是在判断出未开启全局事务后执行的。
3.如权利要求1所述的方法,其特征在于,其特征在于,在所述第二事务管理器使用子事务相关信息更新所述全局事务上下文之前,还包括:所述第二事务管理器判断是否未开启全局事务;
所述使用子事务相关信息更新所述全局事务上下文的操作是在判断出已开启全局事务后执行的。
4.如权利要求2或3所述的方法,其特征在于,所述判断是否未开启全局事务包括:判断是否存在全局事务上下文,若存在全局事务上下文,则判断出已开启全局事务,否则,判断出未开启全局事务。
5.如权利要求2所述的方法,其特征在于,在判断出未开启全局事务时,还包括:所述第一事务管理器为所述第一服务发起的分布式事务分配主事务id;所述创建的全局事务上下文还包括所述主事务id。
6.如权利要求1所述的方法,其特征在于,还包括:在所述第二事务管理器提交子事务失败后,所述第一事务管理器放弃主事务的提交。
7.如权利要求1所述的方法,其特征在于,还包括:
在所述第一事务管理器提交失败后,根据所述MQ中的全局事务上下文发起针对提交成功的分布式事务的回滚。
8.如权利要求1所述的方法,其特征在于,还包括:
所述第一事务管理器为所述第一服务发起的分布式事务分配第一数据库连接引用;所述第一数据库连接引用用于所述第一服务对相应的数据库执行业务逻辑。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610083820.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于分布式事务的两阶段提交协议混合
- 下一篇:一种资源分配方法及资源管理器