本发明专利技术提供一种基于独立事务协调器的分布式事务处理方法、装置及介质,该基于独立事务协调器的分布式事务处理方法包括:创建集群,每个集群包括对应的事务协调器,通过事务协调器对分布式产生的日志数据进行存储,以及,对分布式系统进行监控;对分布式系统中的事务执行定义事务边界、注册事务分支、注册事务资源和管理全局事务锁管理,以及,根据请求,查询分布式系统的事务资源并上报;采用自动方式对事务执行提交。本发明专利技术的有益效果为:降低了分布式事务处理的故障率。了分布式事务处理的故障率。了分布式事务处理的故障率。
【技术实现步骤摘要】
基于独立事务协调器的分布式事务处理方法、装置及介质
[0001]本专利技术涉及计算机
,尤其涉及一种基于独立事务协调器的分布式事务处理方法、装置及介质。
技术介绍
[0002]在高速增长的访问量和数据量的背景下,微服务、SOA以及数据库分库分表等架构模式正在被大规模使用,为完成一个业务功能,可能需要横跨多个服务或者横跨多个数据节点,对于事务的处理不可避免地会面临以下的问题:
[0003]1、无法保证原子性,事务中的原子性是不可分割的单位,在分布式环境下,传统单机数据库事务无法做到多服务节点之间的操作要么都成功,要么都失败。
[0004]2、无法保证一致性,传统单机数据库事务只能保障单节点业务逻辑的数据一致性,不能保障在分布式环境下多节点的业务数据中间状态不可被观察,因此存在读到脏数据的可能,从而导致数据不一致的问题。
[0005]3、无法保证隔离性,传统单机数据库的事务隔离只能针对单一数据库,分布式环境下,存在多节点多数据库并存的情况,因此无法控制并发中对使用的数据进行全局的安全隔离。
[0006]针对传统单机数据库事务无法处理分布式环境中产生的分布式事务问题,目前的实现方案主要有:
[0007]1、参考图1,基于两阶段提交(2PC)的XA协议,通过定义事务管理器和资源管理器之间的接口,在事务管理器以及一个或多个资源管理器之间形成通信桥梁。事务管理器控制着全局事务,管理事务生命周期,并协调多个资源(如数据库、队列)在第一阶段做准备,第二阶段做提交或者回滚。XA两阶段提交存在同步阻塞的问题,当某一个参与者节点出现通信超时,其余参与者都会被动阻塞占用资源不能释放。
[0008]2、参考图2,使用三阶段提交(3PC),这是针对两阶段提交的缺点而提出的优化方案。同时在协调者和参与者中都引入超时机制,并在两阶段提交(2PC)的第一阶段和第二阶段中插入一个准备阶段,保证了在最后提交阶段之前各参与节点的状态是一致的。
[0009]3、参考图3使用柔性事务TCC两阶段补偿模式,约定事务参与者都需要实现try
‑
confirm
‑
cancel三个接口。在try接口尝试执行事务,完成业务检查,预留必要的资源;confirm接口真正执行业务,不做业务资源检查;cancel接口释放try阶段预留的业务资源。
[0010]现有技术的缺点为:
[0011]1、XA两阶段提交存在同步阻塞的问题,当某一个参与者节点出现通信超时,其余参与者都会被动阻塞占用资源不能释放。
[0012]2、XA两阶段提交存在单点故障的问题,当协调者在二阶段的提交过程中发生了故障,参与者们(RMs)会一直锁定事务资源阻塞等待下去,无法继续完成事务操作。
[0013]3、XA两阶段提交协议存在数据不一致的问题,两阶段提交的阶段二中,当协调者向参与者发送commit请求之后,发生了局部网络异常,导致只有一部分参与者接受到了
commit请求。而在这部分参与者接到commit请求之后就会执行commit操作。但是其他部分未接到commit请求的机器则无法执行事务提交。于是整个分布式系统便出现了数据不一致性的现象。
[0014]4、三阶段提交协议(3PC)的数据不一致问题依然存在,当在参与者收到preCommit请求后等待doCommit指令时,此时如果协调者请求中断事务,而协调者无法与参与者正常通信,会导致参与者继续提交事务,造成数据不一致。
技术实现思路
[0015]本专利技术实施例的主要目的在于提出一种基于独立事务协调器的分布式事务处理方法、装置及介质,降低了分布式事务处理的故障率。
[0016]本专利技术的一方面提供了1、一种基于独立事务协调器的分布式事务处理方法,其特征在于,包括:
[0017]创建集群,每个所述集群包括对应的事务协调器,通过所述事务协调器对分布式产生的日志数据进行存储,以及,对所述分布式系统进行监控;
[0018]通过SDK对分布式系统中的事务执行定义事务边界、注册事务分支、注册事务资源和管理全局事务锁管理,以及,根据请求,查询所述分布式系统的事务资源并上报;
[0019]采用自动方式对所述事务执行提交。
[0020]根据所述的基于独立事务协调器的分布式事务处理方法,其中创建集群,每个所述集群包括对应的事务协调器,通过所述事务协调器对分布式产生的日志数据进行存储,以及,对所述分布式系统进行监控包括:基于Raft协议进行日志数据的存储,以至少三个节点的奇数节点组成一个有状态集群,集群之间的事务消息通过日志复制实现数据同步;或者,以个数大于一的节点群组成无状态集群,通过无状态集群执行所述日志的集中存储;以及,监控分布式系统中的资源、JVM参数、网络、以及事务执行状态,同时对接监控预警平台实时地监控事务协调器的运行状态。
[0021]根据所述的基于独立事务协调器的分布式事务处理方法,其中事务协调器为独立进程,所述事务协调器的节点隶属于一个集群,一个集群隶属于一个服务分组。
[0022]根据所述的基于独立事务协调器的分布式事务处理方法,其中对分布式系统中的事务执行定义事务边界、注册事务分支、注册事务资源和管理全局事务锁管理,以及,根据请求,查询所述分布式系统的事务资源并上报还包括:根据请求,自动扫描出所述分布式系统所有的所述事务资源,并协调各个所述事务资源在全局事务进行到提交或者回滚阶段时,执行对应处理。
[0023]根据所述的基于独立事务协调器的分布式事务处理方法,其中采用自动方式对所述事务执行提交包括:根据所述事务资源接收的数据库操作请求,生成对应的数据镜像查询语句,使用数据镜像查询语句查询出操作请求前的数据前置镜像,并将前置镜像数据执行保存,前置镜像数据保存完毕后,执行操作请求;并在后续查询并将后置镜像数据执行保存,执行分支事务的本地提交;当分支事务收到全局事务提交的通知时,删除前置镜像数据以及后置镜像数据,删除方式可以采用异步处理;当收到全局的回滚请求时,分支事务的事务资源通过镜像查询语句查询当前数据库中的数据是否与后置镜像中记录的一致,如果一致,则使用前置镜像数据对相关的数据进行回滚,否则告警,其中全局事务包括多个分支事
务。
[0024]根据所述的基于独立事务协调器的分布式事务处理方法,其中事务的提交还包括采用TCC模式,其中TCC模式包括:在业务编码时通过在方法前添加注解来标注TCC事务资源;应用启动过程中扫描到该注解,通过事务协调器注册事务分支资源;在发起全局事务并调用该事务分支资源时,识别注解,根据注解注册事务分支信息;业务对应的事务执行提交或回滚阶段时,发起事务分支的提交或回滚,事务资源管理器收到分支提交或回滚请求时,协调TCC事务资源执行对应处理。
[0025]根据所述的基于独立事务协调器的分布式事务处理方法,其中事务的提交还包括采用SAGA模式,其中SAGA模式包括:业务编码时通过在方法前添加注解标注SAGA事务资源;在应用启动过程中本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于独立事务协调器的分布式事务处理方法,其特征在于,包括:创建集群,每个所述集群包括对应的事务协调器,通过所述事务协调器对分布式产生的日志数据进行存储,以及,对所述分布式系统进行监控;通过SDK对分布式系统中的事务执行定义事务边界、注册事务分支、注册事务资源和管理全局事务锁管理,以及,根据请求,查询所述分布式系统的事务资源并上报;采用自动方式对所述事务执行提交。2.根据权利要求1所述的基于独立事务协调器的分布式事务处理方法,其特征在于,所述创建集群,每个所述集群包括对应的事务协调器,通过所述事务协调器对分布式产生的日志数据进行存储,以及,对所述分布式系统进行监控包括:基于Raft协议进行日志数据的存储,以至少三个节点的奇数节点组成一个有状态集群,集群之间的事务消息通过日志复制实现数据同步;或者,以个数大于一的节点群组成无状态集群,通过无状态集群执行所述日志的集中存储;以及,监控分布式系统中的资源、JVM参数、网络、以及事务执行状态,同时对接监控预警平台实时地监控事务协调器的运行状态。3.根据权利要求2所述的基于独立事务协调器的分布式事务处理方法,其特征在于,所述事务协调器为独立进程,所述事务协调器的节点隶属于一个集群,一个集群隶属于一个服务分组。4.根据权利要求1所述的基于独立事务协调器的分布式事务处理方法,其特征在于,所述对分布式系统中的事务执行定义事务边界、注册事务分支、注册事务资源和管理全局事务锁管理,以及,根据请求,查询所述分布式系统的事务资源并上报还包括:根据请求,自动扫描出所述分布式系统所有的所述事务资源,并协调各个所述事务资源在全局事务进行到提交或者回滚阶段时,执行对应处理。5.根据权利要求1所述的基于独立事务协调器的分布式事务处理方法,其特征在于,所述采用自动方式对所述事务执行提交包括:根据所述事务资源接收的数据库操作请求,生成对应的数据镜像查询语句,使用数据镜像查询语句查询出操作请求前的数据前置镜像,并将前置镜像数据执行保存,前置镜像数据保存完毕后,执行操作请求;并在后续查询并将后置镜像数据执行保存,执行分支事务的本地提交;当分支事务收到全局事务提交的通知时,删除前置镜像数据以及后置镜像数据,删除方式可以采用异步处理;当收到全局的回滚请求时,分支事务...
【专利技术属性】
技术研发人员:林耿彬,王伟,李宇翔,
申请(专利权)人:赞同科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。