一种分布式事务创建方法技术

技术编号:36252074 阅读:47 留言:0更新日期:2023-01-07 09:45
本发明专利技术提供的一种分布式事务创建方法包括:创建事务组,是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,拿到事务标识GroupId的过程;加入事务组,为添加事务组是指参与方在执行完业务方法以后,将事务信息通知给TxManager的操作。提供了TX

【技术实现步骤摘要】
一种分布式事务创建方法


[0001]本专利技术涉及数据库管理领域,尤其涉及一种分布式事务创建方法。

技术介绍

[0002]微服务架构下,分布式事务是一个难点,实现比较复杂,有商业解决方案也有开源解决方案。
[0003]现有技术中,为了使主要数据中台化部署,业务系统保留业务数据,为了保证主数据与业务数据的一致性,就产生了分布式事务的问题。

技术实现思路

[0004]鉴于上述问题,提出了本专利技术以便提供克服上述问题或者至少部分地解决上述问题的一种分布式事务创建方法。
[0005]根据本专利技术的一个方面,提供了一种分布式事务创建方法包括:
[0006]创建事务组,是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,拿到事务标识GroupId的过程;
[0007]加入事务组,为添加事务组是指参与方在执行完业务方法以后,将事务信息通知给TxManager的操作。
[0008]可选的,所述将创建方法还包括:
[0009]通知事务组是指在发起方执行完业务代码以后,将发起方执行结果状态通知给TxManager;
[0010]TxManager将根据事务最终状态和事务组的信息来通知相应的参与模块提交和/或回滚事务,并将返回结果发送给事务发起方。
[0011]可选的,所述事务模式具体包括:LCN模式、TCC模式和TXC模式;
[0012]所述LCN模式为通过代理JDBC中Connection的方式实现对本地事务的操作,在由TxManager统一协调控制事务;
[0013]当本地事务提交回滚和/或关闭连接时将会执行假操作,代理的连接将由LCN连接池管理;
[0014]所述TCC模式通过对业务逻辑的调度来实现分布式事务,包括三个操作步骤:Try,尝试执行业务;Confirm,确认执行业务;Cancel,取消执行业务;
[0015]所述TXC模式是在执行SQL之前,先查询SQL的影响数据,保存执行的SQL信息和创建锁。
[0016]可选的,所述事务模式还包括:Seata的分布式事务;
[0017]具体包括:事务协调器,维护全局事务的运行状态,负责协调并驱动全局事务的提交和/或回滚;
[0018]控制全局事务的边界,负责开启一个全局事务,并最终发起全局提交和/或全局回滚的决议;
[0019]控制分支事务,负责分支注册、状态汇报,并接收事务协调器的指令,驱动分支事务的提交和回滚。
[0020]本专利技术提供的一种分布式事务创建方法包括:创建事务组,是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,拿到事务标识GroupId的过程;加入事务组,为添加事务组是指参与方在执行完业务方法以后,将事务信息通知给TxManager的操作。提供了TX

LCN的标准支持,事务发起方和参与方都属于TxClient。TxManager作为分布式事务的控制方,控制整个事务。
[0021]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0022]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0023]图1为本专利技术实施例提供的一种分布式事务创建方法的流程示意图。
具体实施方式
[0024]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0025]本专利技术的说明书实施例和权利要求书及附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。
[0026]下面结合附图和实施例,对本专利技术的技术方案做进一步的详细描述。
[0027]如图1所示,TX

LCN由两大模块组成,TxClient、TxManager。
[0028]TxClient作为模块的依赖框架,提供了TX

LCN的标准支持,事务发起方和参与方都属于TxClient。TxManager作为分布式事务的控制方,控制整个事务。
[0029]原理中核心内容
[0030]1)创建事务组,是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,然后拿到事务标识GroupId的过程。
[0031]2)加入事务组,添加事务组是指参与方在执行完业务方法以后,将该模块的事务信息通知给TxManager的操作。
[0032]3)通知事务组,是指在发起方执行完业务代码以后,将发起方执行结果状态通知给TxManager,TxManager将根据事务最终状态和事务组的信息来通知相应的参与模块提交或回滚事务,并返回结果给事务发起方。
[0033]TX

LCN事务模式
[0034]Tx

LCN 5.0开始支持三种事务模式,分别是:LCN、TCC、TXC模式。
[0035]LCN模式原理:
[0036]LCN模式是通过代理JDBC中Connection的方式实现对本地事务的操作,然后在由TxManager统一协调控制事务。当本地事务提交回滚或者关闭连接时将会执行假操作,该代理的连接将由LCN连接池管理。
[0037]模式特点:模式对代码的嵌入性低。模式仅限于本地存在连接对象且可通过连接对象控制事务的模块。模式下的事务提交与回滚是由本地事务方控制,对于数据一致性上有较高的保障。模式缺陷在于代理的连接需要随事务发起方一同释放连接,增加了连接占用的时间。
[0038]总结:LCN模式适合能用JDBC连接的所有支持事务的数据库。
[0039]TCC事务模式原理包括:
[0040]TCC事务机制相对于传统事务机制,其特征在于它不依赖资源管理器(RM)对XA的支持,而是通过对(由业务系统提供的)业务逻辑的调度来实现分布式事务。主要由三步操作,Try:尝试执行业务、Confirm:确认执行业务、Cancel:取消执行业务。
[0041]模式特点包括:模式对代码的嵌入性高,要求每个业务需要写二个以上步骤的操作。模式对有无本地事务控制都可以支持,使用面更广。数据一致性控制几乎完全由开发者控制,对业务开发难度要求高。
[0042]总结:Tcc模式应用于所有不支持XA事务的软件。例如:redis,mongodb。<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式事务创建方法,其特征在于,所述创建方法包括:创建事务组,是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,拿到事务标识GroupId的过程;加入事务组,为添加事务组是指参与方在执行完业务方法以后,将事务信息通知给TxManager的操作。2.根据权利要求1所述的一种分布式事务创建方法,其特征在于,所述将创建方法还包括:通知事务组是指在发起方执行完业务代码以后,将发起方执行结果状态通知给TxManager;TxManager将根据事务最终状态和事务组的信息来通知相应的参与模块提交和/或回滚事务,并将返回结果发送给事务发起方。3.根据权利要求1所述的一种分布式事务创建方法,其特征在于,所述事务模式具体包括:LCN模式、TCC模式和TXC模式;所述LCN模式为通过代理JDBC中Connection的方式实现...

【专利技术属性】
技术研发人员:陈禹旭刘明伟敖知琪王金贺
申请(专利权)人:南方电网数字电网研究院有限公司
类型:发明
国别省市:

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

1