TCC补偿事务

TCC与2PC的思想很相似,事务处理流程也很相似,但2PC 是应用于在DB层面TCC则可以理解为在应用层面的2PC,是需要我们编写业务逻辑来实现。

它的核心思想是:"针对每个操作都要注册一个与其对应的确认(Confirm)和补偿(Cancel"

对应两阶段流程为:阶段一为try阶段,阶段二为confirm阶段/cancel阶段

Try阶段

是主业务服务请求(try)各个从业务服务预留资源

Confirm阶段

确认执行业务操作,在只预留的资源基础上,发起Confirm请求。

Cancel阶段

只要涉及到的相关业务中,有一个业务方预留资源未成功,则取消所有业务资源的预留请求

优点

1、因为Try阶段检查并预留了资源,所以confirm阶段一般都可以执行成功

2、资源锁定都是在业务代码中完成,不会阻塞住DB,可以做到对db性能无影响

缺点

1应用侵入性强:TCC由于基于在业务层面,至使每个操作都需要有 try、confirm、cancel三步。

2开发难度大:代码开发量很大,要保证数据一致性 confirm 和 cancel 接口还必须实现幂等性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值