一种分布式事务协调方法、装置及电子设备制造方法及图纸

技术编号:26890350 阅读:15 留言:0更新日期:2020-12-29 16:06
本发明专利技术公开了一种分布式事务协调方法、装置及电子设备,其中方法包括:通过业务接口调用微服务,通过微服务检查当前是否存在分布式事务环境,如果不存在,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑,如果存在,将微服务作为事务参与者加入到分布式事务组,并执行本地事务逻辑,当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组;本发明专利技术实施例提供的分布式事务协调器使用多实例组成集群,不存在单点故障;对数据库没有过多要求,只需要支持事务,不要求数据库支持二阶段提交;协调器之间采用组播方式,避免了数据复制产生的不一致性。

【技术实现步骤摘要】
一种分布式事务协调方法、装置及电子设备
本专利技术涉及分布式微服务架构领域,具体涉及一种分布式事务协调方法、装置及电子设备。
技术介绍
随着分布式微服务架构的广泛使用,多个微服务之间的数据一致性问题越来越突出。一致性问题在分布式系统中是一个无法规避的问题,二阶段提交是传统解决数据一致性方案之一,但存在以下缺点:依赖数据库实现,对数据库的要求较高;没有超时机制;单点故障,由于协调者的重要性,一旦协调者发生故障,参与者会一直阻塞下去,整个集群将不可用;数据不一致,在二阶段提交的阶段二中,当协调者向参与者发送提交请求之后,若发生了局部网络异常或者在发送提交请求过程中协调者发生了故障,则会导致只有一部分参与者接收到了提交请求。
技术实现思路
本专利技术的主要目的在于提供一种分布式事务协调方法及装置,以解决现有二阶段提交对数据库的要求较高、没有超时机制、单点故障和数据不一致的问题。为了实现上述目的,本专利技术的第一方面提供了一种种分布式事务协调方法,包括:通过业务接口调用微服务;通过微服务检查当前是否存在分布式事务环境;如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑;如果当前存在分布式事务环境,将微服务作为事务参与者加入到分布式事务组,并执行本地事务逻辑;当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组。可选地,所述如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑,包括:如果当前不存在分布式事务环境,则将所述微服务作为事务发起者初始化分布式事务环境,并通知事务协调器集群创建分布式事务组;通过所述事务协调器集群创建分布式事务组,并将分布式事务组标识发送至事务发起者;令所述事务发起者根据所述分布式事务组标识加入到分布式事务组,并执行本地事务逻辑。可选地,所述当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组,包括:判断事务参与者的业务接口调用是否存在异常。进一步地,如果不存在异常,则:通过事务发起者通知事务协调器集群提交分布式事务组;当事务协调器集群收到提交通知后,向事务发起者发送确认收到提交通知的信息,并异步通知事务参与者提交本地事务;通过事务参与者和事务发起者提交本地事务。进一步地,如果存在异常,则:令事务参与者通过业务响应,将业务调用异常信息发送至事务发起者;通过事务发起者通知事务协调器集群回滚所有事务参与者本地事务;通过事务协调器集群回滚所有事务参与者本地事务。可选地,在通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组之后,所述方法还包括:如果通知失败,则计入事务协调器集群失败日志。本专利技术的第二方面提供了一种分布式事务协调装置,包括:调用模块,用于通过业务接口调用微服务;检查模块,用于通过微服务检查当前是否存在分布式事务环境;第一加入模块,用于如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑;第二加入模块,用于如果当前存在分布式事务环境,将微服务作为事务参与者加入到分布式事务组,并执行本地事务逻辑;完成模块,用于当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组。本专利技术的第三方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的分布式事务协调方法。本专利技术的第四方面提供了一种分布式事务协调系统,所述系统包括微服务、事务协调器集群、SDK和第三方面所述的电子设备;所述微服务,作为分布式事务组的事务发起者或事务参与者,用于根据客户端接收的用户请求调用数据库,执行业务逻辑,提交业务服务;所述事务协调器集群,用于创建分布式事务组,协调事务参与者的本地事务;所述事务协调器集群包括至少三个协调器,分布式事务信息存储在事务发起者连接的任一协调器上,如果事务参与者从事务发起者所连接协调器之外的其他协调器接入协调器集群,则通过组播方式查询事务数据所在协调器,事务数据所在协调器响应组播查询请求;并且,各协调器之间以UDP的方式通信;所述SDK,用于建立所述微服务与事务协调器集群之间的双向网络通信,并且使用AOP面向切面编程的方式进行拦截和增强。可选地,所述系统还包括客户端和数据库;所述客户端,用于接收用户的请求,与用户交互;所述数据库,用于存储业务数据,提供本地事务,被微服务调用。在本专利技术实施例中,通过业务接口调用微服务,通过微服务检查当前是否存在分布式事务环境,如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑,如果当前存在分布式事务环境,将微服务作为事务参与者加入到分布式事务组,并执行本地事务逻辑,当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组;本专利技术实施例提供的分布式事务协调器基于C/S架构协调器使用多实例组成集群,不存在单点故障;事务参与者与协调器之间的所有网络通信都有超时机制,避免无限期等待;对数据库没有过多要求,只需要支持事务即可,不要求数据库支持二阶段提交;协调器之间采用组播方式,避免了数据复制产生的不一致性。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的分布式事务协调方法流程示意图;图2为本专利技术实施例提供的分布式事务协调过程图;图3为本专利技术实施例提供的分布式事务协调装置框图;图4为本专利技术实施例提供的电子设备框图;图5为本专利技术实施例提供的分布式事务协调系统框图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的本文档来自技高网
...

【技术保护点】
1.一种分布式事务协调方法,其特征在于,所述方法包括:/n通过业务接口调用微服务;/n通过微服务检查当前是否存在分布式事务环境;/n如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑;/n如果当前存在分布式事务环境,将微服务作为事务参与者加入到分布式事务组,并执行本地事务逻辑;/n当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组。/n

【技术特征摘要】
1.一种分布式事务协调方法,其特征在于,所述方法包括:
通过业务接口调用微服务;
通过微服务检查当前是否存在分布式事务环境;
如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑;
如果当前存在分布式事务环境,将微服务作为事务参与者加入到分布式事务组,并执行本地事务逻辑;
当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组。


2.根据权利要求1所述的分布式事务协调方法,其特征在于,所述如果当前不存在分布式事务环境,将微服务作为事务发起者加入到分布式事务组,并执行本地事务逻辑,包括:
如果当前不存在分布式事务环境,则将所述微服务作为事务发起者初始化分布式事务环境,并通知事务协调器集群创建分布式事务组;
通过所述事务协调器集群创建分布式事务组,并将分布式事务组标识发送至事务发起者;
令所述事务发起者根据所述分布式事务组标识加入到分布式事务组,并执行本地事务逻辑。


3.根据权利要求1所述的分布式事务协调方法,其特征在于,所述当所有事务参与者的业务接口调用都完成后,通过事务发起者通知事务协调器集群完成分布式事务组,以使事务协调器集群完成分布式事务组,包括:
判断事务参与者的业务接口调用是否存在异常。


4.根据权利要求3所述的分布式事务协调方法,其特征在于,如果不存在异常,则:
通过事务发起者通知事务协调器集群提交分布式事务组;
当事务协调器集群收到提交通知后,向事务发起者发送确认收到提交通知的信息,并异步通知事务参与者提交本地事务;
通过事务参与者和事务发起者提交本地事务。


5.根据权利要求3所述的分布式事务协调方法,其特征在于,如果存在异常,则:
令事务参与者通过业务响应,将业务调用异常信息发送至事务发起者;
通过事务发起者通知事务协调器集群回滚所有事务参与者本地事务;
通过事务协调器集群回滚所有事务参与者本地事务。


6.根据权利要求1所述的分布式事务协调方法,其特征在于,在通过事务发起者通知事务协调器集群完成分布式事...

【专利技术属性】
技术研发人员:祝军周文茹
申请(专利权)人:上加下信息技术成都有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1