TCC分布式事务处理是怎么实现的。
应该怎么理解TCC的TRYING 、CONFIRMING、CANCELIING。
幂等性又怎么处理?
可以参考一下开源的TCC实现ByteTCC。
ByteTCC是一个基于TCC(Try/Confirm/Cancel)事务补偿机制的分布式事务管理器,兼容JTA,因此可以很好的与EJB、Spring等容器(本文档下文说明中将以Spring容器为例)进行集成,支持Spring容器的声明式事务。
TCC是一个理念,其由Atomikos公司的创始人提出,如果想了解其具体内容直接到其官网下载个白皮书看下就好了,任何时候都是看官方文档才能更准确的获知答案。不过TCC只是分布式事务中的一个选项,且并非最优选项,这里有篇文章介绍https://github.com/QNJR-GROUP...
3 回答2.2k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答890 阅读✓ 已解决
1 回答1.2k 阅读
771 阅读
TRYING
、CONFIRMING
、CANCELIING
大致可以理解为SQL
事务中的LOCK
、COMMIT
、ROLLBACK
。幂等性主要是用于防止重复提交的,因为事务操作的微服务是分布式部署的,即使有事务的支持,我们也无法保证传输过程中会不会因为网络或者其他问题引发的中断(比如数据方已经接受并提交了更新,但由于网络中断,提交方并未收到成功更新的提醒,这种情况下程序一般会返回给用户未成功的信息,而如果用户错误的任务未成功,则会重新提交申请,导致事务重复提交)