分布式事务(三):分布式事务解决方案之TCC(Try、Confirm、Cancel)

TCC(Try、Confirm、Cancel)是一种分布式事务解决方案,通过预处理Try、确认Contirm和撤销Cancel来确保事务的一致性和隔离性。在Try阶段进行业务检查和资源预留,Confirm阶段确认提交,Cancel阶段执行回滚。TCC需要处理空回滚、幂等性和悬挂等异常情况,并确保各阶段的幂等性。Hmily是一个适用于Dubbo和SpringCloud的TCC框架,提供事务日志异步处理和多种存储支持。
摘要由CSDN通过智能技术生成

什么是TCC

TCC是Try、Contirm、Cancel三个词语的缩写,TCC要求每个 分支事务实现三个操作:预处理Try、确认Contirm、撤销Cancel。Try操作业务检查以及资源预留,Contirm做业务确认,Cancel实现一个与Try相反的操作即回滚。TM首先发起所有的分支事务的try操作,任何一个分支事务的try操作执行失败,TM将会发起所有分支事务的Cancel操作,若try操作全部成功,TM将会发起所有分支事务的Confirm操作,其中Confirm/Cancel操作若执行失败,TM会进行重试。

分支事务成功的场景

分支事务失败的场景

 TCC分为三个阶段:

  1. Try 阶段是做业务检查(一致性)及资源预留(隔离),此阶段仅是一个初步操作,它和后续的Confirm一起才能真正构成一个完成的业务逻辑。
  2. Confirm 阶段是做确认提交,Try阶段所有分支事务执行成功后开始执行Confirm。通常情况下,采用TCC则认为Confirm阶段是不会出错的。即:只要Try成功,Confirm一定成功。若Confirm阶段真的出错了,需引入重试机制或人工处理。
  3. Cancel 阶段是在业务执行错误需要回滚的状态下执行分支事务的业务取消,预留资源释
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值