处理流程
1、<font color="#c41230">Try</font> 阶段主要是对业务系统做检测及资源预留。完成所有业务检查( 一致性 ) 。预留必须业务资源( 准隔离性 ) 。Try 尝试执行业务。
2、<font color="#c41230">Confirm</font> 阶段主要是对业务系统做确认提交。Try阶段执行成功并开始执行 Confirm阶段时,默认 Confirm阶段是不会出错的。即:只要Try成功,Confirm一定成功。
3、<font color="#c41230">Cancel</font> 阶段主要是在业务执行错误,需要回滚的状态下执行的业务取消,预留资源释放。
优缺点
优点
1、性能提升:具体业务来实现控制资源锁的粒度变小,不会锁定整个资源。<br>
2、数据最终一致性:基于 Confirm 和 Cancel 的幂等性,保证事务最终完成确认或者取消,保证数据的一致性。
3、可靠性:解决了 XA 协议的协调者单点故障问题,由主业务方发起并控制整个业务活动,业务活动管理器也变成多点,引入集群。
缺点
TCC 的 Try、Confirm 和 Cancel 操作功能要按具体业务来实现,业务耦合度较高,提高了开发成本