Content #
1.TCC 是个业务层面的分布式事务协议,而 XA 规范是数据层面的分布式事务协议,这也是 TCC 和 XA 规范最大的区别。
2.TCC 与业务耦合紧密,在实际场景使用时,需要我们根据场景特点和业务逻辑来设计相应的预留、确认、撤销操作,相比 MySQL XA,有一定的编程开发工作量。
- 本质上而言,TCC 是一种设计模式,也就是一种理念,它没有与任何技术(或实现)耦合,也不受限于任何技术,对所有的技术方案都是适用的。
最后,因为 TCC 是在业务代码中编码实现的,所以,TCC 可以跨数据库、跨业务系统实现资源管理,满足复杂业务场景下的事务需求,比如, TCC 可以将对不同的数据库、不同业务系统的多个操作通过编码方式,转换为一个原子操作,实现事务。
另外,因为 TCC 的每一个操作对于数据库来讲,都是一个本地数据库事务,那么当操作结束时,本地数据库事务的执行也就完成了,所以相关的数据库资源也就被释放了,这就能避免数据库层面的二阶段提交协议长时间锁定资源,导致系统性能低下的问题。