分布式事务解决方案TCC

作者: 我犟不过你 | 来源:发表于2020-11-16 21:46 被阅读0次

什么是TCC事务

TCC是Try、Confirm、Cancel三个词语的缩写,要求每个分支事务执行三个操作:
预处理Try:做业务检查和资源预留
确认Confirm:做业务确认
撤销Cancel:实现回滚操作

TM首先会发起所有分支事务的try操作,任何一个分支事务的try操作执行失败,TM将会发起所有分支事务的Cancel操作,若try全部成功,TM将会发起所有分支事务的confirm操作,其中,若confirm、cancel执行失败,TM会进行重试。

try-confirm成功 try-cancel失败

TCC分为三个阶段:

1)Try阶段是做业务检查(一致性)及资源预留(隔离)。
2)Confirm阶段是做确认提交,Try阶段所有分支事务执行成功开始执行confirm。
通常情况下使用TCC则认为在Confirm阶段不会出错,只要try成功,confirm一定成功。若confirm出错,则进行重试或人工处理。
3)Cancel阶段是在业务执行错误需要回滚的状态下,执行其他未失败的分支事务的取消,即预留资源的释放。
通常情况下,TCC的Cancel阶段也认为是一定成功的,若出错曾引入重试或人工处理。

TCC的实现方案

以下几个框架均支持TCC全局事务,目前阿里seata拥有较大的用户基数,github的star数也是遥遥领先,后面会逐步增加seata实战源码。

名称 github
tcc-transaction https://github.com/changmingxie/tcc-transaction
LCN https://github.com/codingapi/tx-lcn
Alibaba Seata https://github.com/seata/seata
Hmily https://github.com/yu199195/hmily
ByteTCC https://github.com/liuyangming/ByteTCC

相关文章

网友评论

    本文标题:分布式事务解决方案TCC

    本文链接:https://www.haomeiwen.com/subject/ogxzbktx.html