分布式事务(三):Seata之TCC事务模式原理
TCC 模式是 Seata 支持的一种由业务方细粒度控制的侵入式分布式事务解决方案,是继 AT 模式后第二种支持的事务模式。其分布式事务模型直接作用于服务层,不依赖底层数据库,可以灵活选择业务资源的锁定粒度,减少资源锁持有时间,可扩展性好,是为独立部署的 SOA 服务而设计的。
TCC模式支持把自定义的分支事务纳入到全局事务管理中。
Seata TCC模式,整体是两阶段提交的模型。全局事务由若干分支事务组成,分支事务要满足 两阶段提交 的模型要求,即需要每个分支都具备两阶段:
一阶段 prepare 行为;
二阶段 commit 或 rollback 行为。
根据两阶段行为模式的不同,分支事务 划分为 Automatic (Branch) Transaction Mode 和 TCC (Branch) Transaction Mode。
TCC模式不依赖于底层数据资源的事务支持:
一阶段prepare行为:调用自定义的 prepare 逻辑;
二阶段commit行为:调用自定义的 commit 逻辑;
二阶段rollback行为:调用自定义的 rollback 逻辑。