[发明专利]跨进程分布式事务控制方法及相关系统有效
申请号: | 201610083820.0 | 申请日: | 2016-02-06 |
公开(公告)号: | CN107045454B | 公开(公告)日: | 2020-06-26 |
发明(设计)人: | 周俊杰;王世军 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 跨进 分布式 事务 控制 方法 相关 系统 | ||
本发明提供跨进程分布式事务控制方法及相关系统。在该方法中,第一事务管理器对应主事务,创建包括全局事务状态的全局事务上下文,通过RPC将全局事务上下文发送给第二事务管理器。第二事务管理器对应子事务,使用子事务相关信息更新接收到的全局事务上下文并通过RPC发送给第一事务管理器。第一事务管理器在相应的服务完成业务逻辑后,通过全局事务快照器将全局事务上下文发送至消息中间件,并通知第二事务管理器提交子事务,在子事务提交成功后,再提交主事务,并在主事务提交成功后,通过全局事务快照器通知消息中间件将全局事务上下文中的全局事务状态更改为完成。在实现对分布式事务的控制的同时,还保持了数据更新的一致性。
技术领域
本发明涉及计算机技术领域,特别是涉及跨进程分布式事务控制技术。
背景技术
云应用下,业务系统为了支持扩展性,都遵从分布式架构。在分布式架构中,一个业务不再局限于在一个进程中执行,其可能会拆分到不同的进程上,由不同进程上的服务发起事务来共同完成。
例如,假定某一业务需要完成Lucy向lily转账500元,则其可能拆成到两个进程中,由其中一个进程中的服务完成的事务是将Lucy账户中的余额减500,由另一个进程中的服务完成的事务是将lily账户中的余额增加500。事务提交后,最终的结果是,多个进程中的服务各自更新数据到各自的数据库。
上述不同的进程可能在不同的虚拟机甚至在不同的物理机上运行。那么保持它们数据更新的一致性就成了一种挑战。
发明内容
本发明的目的在于提供跨进程分布式事务控制方法及相关系统,以实现地分布式场景下对事务的控制,同时保持数据更新的一致性。
为实现上述目的,本发明提供了如下方案:
一方面,本申请的实施例提供一种跨进程分布式事务控制方法,第一事务管理器对应主事务,第二事务管理器对应子事务,第一事务管理器创建包括全局事务状态的全局事务上下文,通过RPC将全局事务上下文发送给第二事务管理器。第二事务管理器对应子事务,使用子事务相关信息更新接收到的全局事务上下文并通过RPC发送给第一事务管理器。第一事务管理器在相应的服务完成业务逻辑后,通过全局事务快照器将全局事务上下文发送至消息中间件,并通知第二事务管理器提交子事务,在子事务提交成功后,再提交主事务,并在主事务提交成功后,通过全局事务快照器通知消息中间件将全局事务上下文中的全局事务状态更改为完成。这样,在实现对分布式事务的控制的同时,还保持了数据更新的一致性。
在一个可能的设计中,第一事务管理器在创建所述全局事务上下文之前,还判断是否未开启全局事务;在判断出未开启全局事务后再创建包括全局事务id和全局事务状态的全局事务上下文。这样可以防止针对同一全局事务重复创建全局事务上下文。
在一个可能的设计中,第一事务管理器在判断出未开启全局事务时,还为所述第一服务发起的分布式事务分配主事务id。则创建的全局事务上下文还可包括所述主事务id。这样可便于对跨进程分布式事务进行更好的控制。
在一个可能的设计中,所述第二事务管理器在使用子事务相关信息更新所述全局事务上下文之前,还判断是否未开启全局事务;在判断出已开启全局事务后才使用子事务相关信息更新全局事务上下文。这样,也可防止错误更新全局事务上下文。
在一个可能的设计中,第一事务管理器或第二事务管理器在判断是否未开启全局事务时,可判断是否存在全局事务上下文,若存在全局事务上下文,则判断出已开启全局事务,否则,判断出未开启全局事务。这样可进一步精确判断是否开启了全局事务。
在一个可能的设计中,在第二事务管理器提交子事务失败后,所述第一事务管理器可放弃主事务的提交。这样,可实现子事务提交失败后,主事务也不提交。则各服务对应的数据库中的数据也不会发生更新,从而仍可保证数据的一致性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610083820.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于分布式事务的两阶段提交协议混合
- 下一篇:一种资源分配方法及资源管理器