分布式事务解决方案(tx-lcn)

1、tx-lcn

1、名词解释

tx-lcn:
tx是事务管理器, lcn是由Lock Control Notify三个单词的⾸字⺟组合⽽来, Lock:是指通过获取到资源的控制器,形成对其他访问的排他性;Control:是通过控制数据的写⼊⽽达到对事务的提交与回滚.Notify:通过消息来协调控制各节点的数据事务操作。

TC:Transaction Client 代表事务客户端,对应流程中是对事务发起⽅与事务参与⽅的泛指。

TM:TransactionManager,也简称为TxManager是事务管理器。

2、事务协调的原理

对分布式事务的协调控制流程图
步骤1:
事务发起⽅在开始执⾏业务之前将先调⽤TM通知创建事务,事务中包含关键的事务信息如节点信息、全局事务Id标示等信息,发起⽅将等待TM响应数据以后再执⾏步骤2。
步骤2:
当接受到TM创建的事务消息以后,事务发起⽅则开始执⾏⾃⼰的业务代码,在执⾏业务的过程就会开始对各个参与⽅的调⽤,在调⽤时会将TM创建的事务标示信息传递到参与⽅中。
步骤3:
事务发起⽅开始发起对事务参与⽅的调⽤,调⽤时将会把事务标志信息传递给参与⽅。
步骤4:
当参与⽅接受到来⾃发起⽅的请求之后就开始执⾏本地的业务。在这⾥执⾏完业务后不会⽴即对本次的本地事务做处理,实际上在系统中是代理了连接对象没有对其做真正的事务操作。具体的代理步骤将会在下⾯的代理机制中解释。
步骤5:
当参与⽅A完成了本地业务的执⾏以后,再请求TM加⼊到本次事务中,提交的主要信息有本地的⽇志标记信息与节点信息,在请求TM前会先开启超时等待任务,然后再发起加⼊事务指令给TM,加⼊事务受系统控制。
步骤6、7、8:
该步骤原理对账3、4、5⼀样,只是参与⽅不同⽽已。
步骤9:
当发起⽅完成所有的参与⽅调⽤以后,则根据最终的事务情况来通知TM提交事务,该步骤需要确认TM接受到消息,提交事务分为:commit、rollback两种,当提交完成事务以后也会与参与⽅⼀样开始进⼊等待超时机制。TM通知的流程是会遍历参与⽅逐步通知确认,全部通过后再通知发起⽅,详细原理⻅TM原理介绍。
步骤10:
TM通知参与⽅节点做事务的commit或rollback操作,对于TM通知成功的原则是需要将消息通知到参与⽅,参与⽅完成事务的执⾏后再将消息反馈给TM,TM接受到消息以后再开始调⽤下⼀个参与⽅的事务通知。这⾥存在超时机制与重试机制和切换模块事务机制,详细介绍可参考下⾯的内容。
步骤11:
该步骤原理同步骤10⼀样,只是参与⽅不同⽽已。
步骤12:
通知发起⽅事务,该步骤是TM已经完成了对所有参与⽅的通知确认后,再通知发起⽅提交事务的操作步骤,发起⽅根据事务状态完成对事务的操作。
步骤13:
当发起⽅完成了事务操作则会通知TM事务已提交完成,这时候对于TM来说才是所有事务的完成,该消息⽆需TM有⽆接受到,都将在发送完成以后响应数据给调⽤者。由于事务已提交TM再次发起请求,也会由于SQL⽇志已清理⽽⽆法重复提交。

3、TC代理控制处理(强一致)

在这里插入图片描述

TC代理控制处理(柔性事务)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值