今天,我们将介绍分布式事务LCN框架。 属于三个区段的提交3PC针对2PC进行了优化,原理如图所示。 1、LCN不生产事务。 LCN只是将本地事务的协调器TX-LCN定位在事务协调框架中,框架本身并不处理事务,而是基于事务协调来实现事务一致性。 TX-LCN由两个大模块组成,tx客户端、TxManager和tx客户端作为模块的依赖框架,提供TX-LCN的标准支持,TxManager作为分布式事务的控制者事务的发起者或参与者由tx客户端控制。 原理图如下。
图的内容大致可分为三个步骤。 a .创建事务组是事务启动器在开始执行业务代码之前调用TxManager创建事务组对象并获取事务标签GroupId的过程。 b .加入事务组并添加事务组是指参与者执行业务方法后,向TxManager通知该模块的事务信息的操作。 c .通知事务组是指启动器运行业务代码后,向TxManager通知启动器运行结果的状态。 TxManager根据事务的最终状态和事务组信息,通知相应的参与模块提交或回退事务,并将结果返回给事务的启动器。 2、实战开始,事务管理器微服务器为jardependencygroupidcom.coding API.txl cn/groupidartifactidtxlcn-TM/artifactidversion5.0. 0
3、客户端微服务jar包部署:
! --lcn事务--dependencygroupidcom.coding API.txl cn/groupidartifactidtxlcn-TC/artifactidversion5.0.2. reler ve lease ependencydependencygroupidcom.coding API.txl cn/groupidartifactidtxlcn-tx msg-netty/artifactidversion5.0. 2
启动界面后,groupId相同,数据库操作保持原子,分布式事务成功,大家自己测试一下思路就更清楚了。 下一篇将分析蚂蚁的分布式框架Seata,敬请期待。