分布式事务之二阶段提交和三阶段提交

先介绍两个概念:
TM(Transaction Manager):事务管理器
RM(Resource Manager):资源管理器

两阶段提交

给定两个服务,订单服务和支付服务之间的调用:

两阶段提交的第一阶段

1:事务开始,先由TM向每个服务发起请求用来获取执行状态,事务代码开始执行,锁定资源,但不提交
2:如果事务A在执行时出现异常,会返回执行状态(异常),如果执行正常,事务A执行会返回执行状态(正常);事务A同理

两阶段提交的第二阶段

3:如果上述"2"返回的是全部"正常",TM在向每个服务发起请求通知它们进行提交;
如果上述"2"返回的有一个是"异常",TM在向每个服务发起请求通知它们进行回滚。

三阶段提交

三阶段提交与二阶段提交相比,在两阶段提交的第一阶段前增加了询问的过程;
因为在事务执行时是锁定资源的,可能出现网络不通导致资源阻塞。

三阶段提交的第一阶段

0-1:TM在向每个服务发起请求询问网络是否正常
0-2:如果返回的是全部"正常",TM在执行事务操作;
如果返回的有一个是"异常",TM不在执行。

三阶段提交的第二阶段为二阶段提交的第一阶段

1:事务开始,先由TM向每个服务发起请求用来获取执行状态,事务代码开始执行,锁定资源,但不提交
2:如果事务A在执行时出现异常,会返回执行状态(异常),如果执行正常,事务A执行会返回执行状态(正常);事务A同理

三阶段提交的第三阶段为二阶段提交的第二阶段

3:如果上述"2"返回的是全部"正常",TM在向每个服务发起请求通知它们进行提交;
如果上述"2"返回的有一个是"异常",TM在向每个服务发起请求通知它们进行回滚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值