SpringCloud分布式事务模式

SpringCloud分布式事务模式:AT、TCC、SAGA

1.AT:AutoTransaction

一种无需入侵代码的自动分布式事务模式

原理

共分两个阶段:

阶段一:

解析sql语句,创建undo_log,其内保存的是反sql语句(反sql语句:执行sql语句后,得到新数据,再执行反sql语句回到原来数据),执行sql语句。

阶段二:

判断事务有误报错:
若有,则执行反sql语句。
若无,删除undo_log即可。
图示如下 在这里插入图片描述
一二阶段的提交由seata完成。

AT的全局事务与局部事务

TM:Transaction Manager事务管理器
全局事务管理者,标注@GlobalTransactional的方法所在的服务。
RM:Resource Manager资源管理
负责本地事务的注册、提交和回滚。每个服务都是一个RM,
TC:Transaction Coordinate事务协调器
全局事务协调器,TM、RM启动时要像TC注册。
把控整个事务

在这里插入图片描述

AT全局锁

一个业务可能有多个本地事务,故需要全局锁。
在这里插入图片描述

在这里插入图片描述

2.TCC

Try-Confirm-Cancel
Try:实现业务检查和资源预留
Confirm:业务确认提交
Cancel:业务回滚
如订单
业务检查:检查库存是否充足
资源预留:
订单新增,添加一个状态为未提交
所需库存进行一个标注冻结,冻结后库存不能被其他业务所占用。
可以说TCC是AT的第二阶段,同时TCC需要我们自己实现代码
在这里插入图片描述

在这里插入图片描述

3.SAGA模式

上时间执行的事务
SAGA两个阶段:一、正向事务。二、补偿事务
在这里插入图片描述
SAGA三种事务类型:
可补偿性事务
关键性事务
可重复性事务在这里插入图片描述

来自: https://blog.csdn.net/qq_24950043/article/details/124515274

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值