[发明专利]一种分布式事务协调方法、装置及电子设备在审
申请号: | 202010937837.4 | 申请日: | 2020-09-08 |
公开(公告)号: | CN112148394A | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 祝军;周文茹 | 申请(专利权)人: | 上加下信息技术成都有限公司 |
主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F9/46;G06F9/54;G06F16/27 |
代理公司: | 北京知果之信知识产权代理有限公司 11541 | 代理人: | 卜荣丽 |
地址: | 610000 四川省成都市中国(四川)自由贸易试*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 事务 协调 方法 装置 电子设备 | ||
本发明公开了一种分布式事务协调方法、装置及电子设备,其中方法包括:通过业务接口调用微服务,通过微服务检查当前是否存在分布式事务环境,如果不存在,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑,如果存在,将微服务作为事务参与者加入到分布式事务组,并执行本地事务逻辑,当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组;本发明实施例提供的分布式事务协调器使用多实例组成集群,不存在单点故障;对数据库没有过多要求,只需要支持事务,不要求数据库支持二阶段提交;协调器之间采用组播方式,避免了数据复制产生的不一致性。
技术领域
本发明涉及分布式微服务架构领域,具体涉及一种分布式事务协调方法、装置及电子设备。
背景技术
随着分布式微服务架构的广泛使用,多个微服务之间的数据一致性问题越来越突出。
一致性问题在分布式系统中是一个无法规避的问题,二阶段提交是传统解决数据一致性方案之一,但存在以下缺点:依赖数据库实现,对数据库的要求较高;没有超时机制;单点故障,由于协调者的重要性,一旦协调者发生故障,参与者会一直阻塞下去,整个集群将不可用;数据不一致,在二阶段提交的阶段二中,当协调者向参与者发送提交请求之后,若发生了局部网络异常或者在发送提交请求过程中协调者发生了故障,则会导致只有一部分参与者接收到了提交请求。
发明内容
本发明的主要目的在于提供一种分布式事务协调方法及装置,以解决现有二阶段提交对数据库的要求较高、没有超时机制、单点故障和数据不一致的问题。
为了实现上述目的,本发明的第一方面提供了一种种分布式事务协调方法,包括:
通过业务接口调用微服务;
通过微服务检查当前是否存在分布式事务环境;
如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑;
如果当前存在分布式事务环境,将微服务作为事务参与者加入到分布式事务组,并执行本地事务逻辑;
当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组。
可选地,所述如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑,包括:
如果当前不存在分布式事务环境,则将所述微服务作为事务发起者初始化分布式事务环境,并通知事务协调器集群创建分布式事务组;
通过所述事务协调器集群创建分布式事务组,并将分布式事务组标识发送至事务发起者;
令所述事务发起者根据所述分布式事务组标识加入到分布式事务组,并执行本地事务逻辑。
可选地,所述当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组,包括:
判断事务参与者的业务接口调用是否存在异常。
进一步地,如果不存在异常,则:
通过事务发起者通知事务协调器集群提交分布式事务组;
当事务协调器集群收到提交通知后,向事务发起者发送确认收到提交通知的信息,并异步通知事务参与者提交本地事务;
通过事务参与者和事务发起者提交本地事务。
进一步地,如果存在异常,则:
令事务参与者通过业务响应,将业务调用异常信息发送至事务发起者;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上加下信息技术成都有限公司,未经上加下信息技术成都有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010937837.4/2.html,转载请声明来源钻瓜专利网。