Seata入门系列(三)-TCC模式、Saga模式

Seata-TCC模式

入侵式的

TCC也是二阶段提交协议,全称为Try-Confirm-Cancel,即资源预留、确认操作、取消操作

        1.Try: 对业务资源的检查并预留;

        2.Confirm: 对业务处理进行提交,即commit 操作,只要 Try 成功,那么该步装一定成功

        3.Cancel: 对业务处理进行取消,即回滚操作,该步骤会对 Try 预留的资源进行释放

TCC和AT区别

AT模式基于支持本地ACID事务的关系型数据库

        一阶段 prepare行为: 在本地事务中,一并提交业务数据更新和相应回滚日志记录

        二阶段commit 行为:马上成功结束,自动异步批量清理回滚日志

        二阶段 rollback 行为: 通过回滚日志,自动生成补偿操作,完成数据回滚

相应的,TCC模式,不依赖于底层数据资源的事务支持:

        一阶段 prepare 行为: 调用自定义的 prepare 逻辑。

        二阶段commit 行为:调用自定义的commit 逻辑

        二阶段rollback 行为:调用自定义的rollback逻辑

所谓TCC模式,是指支持把自定义的分支事务纳入到全局事务的管理中

Seata-Saga模式

Saga定义

Saga模式采用了长事务的概念,将原子操作拆分为多个子事务,并通过补偿机制保证整个事务的一致性。

Saga是一种比较传统的解决方案,传统的业务系统中通常会提供冲正服务,当正向服务执行失败时,业务会自动调用冲正服务,将已经发生变化的数据再修改回去,这种解决思想与Saga相同。

Saga组成

Saga由一个个独立的本地事务组成(T1,T2,T3...),并且每个独立的本地事务提供反向逻辑(C1,C2,C3...),反向逻辑是指正向节点发生的变化会滚回去,如T1将数据ID=1 变更为ID=2,则反向逻辑是将ID变更为ID=1

T3节点执行失败,则开始执行冲正服务C2->C1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值