TCC分布式事务实现原理

TCC分布式事务处理是怎么实现的。
应该怎么理解TCC的TRYING 、CONFIRMING、CANCELIING。
幂等性又怎么处理?

阅读 39.8k
4 个回答

TRYINGCONFIRMINGCANCELIING大致可以理解为SQL事务中的LOCKCOMMITROLLBACK
幂等性主要是用于防止重复提交的,因为事务操作的微服务是分布式部署的,即使有事务的支持,我们也无法保证传输过程中会不会因为网络或者其他问题引发的中断(比如数据方已经接受并提交了更新,但由于网络中断,提交方并未收到成功更新的提醒,这种情况下程序一般会返回给用户未成功的信息,而如果用户错误的任务未成功,则会重新提交申请,导致事务重复提交)

可以参考一下开源的TCC实现ByteTCC

ByteTCC是一个基于TCC(Try/Confirm/Cancel)事务补偿机制的分布式事务管理器,兼容JTA,因此可以很好的与EJB、Spring等容器(本文档下文说明中将以Spring容器为例)进行集成,支持Spring容器的声明式事务。

用户指南:https://github.com/liuyangmin...

新手上路,请多包涵
新手上路,请多包涵

TCC是一个理念,其由Atomikos公司的创始人提出,如果想了解其具体内容直接到其官网下载个白皮书看下就好了,任何时候都是看官方文档才能更准确的获知答案。不过TCC只是分布式事务中的一个选项,且并非最优选项,这里有篇文章介绍https://github.com/QNJR-GROUP...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏