TCC(Try Confirm Cancel)是应用层的两阶段提交
TCC如何保证最终一致性
资源预留与隔离,在Try阶段,TCC通过预留必要的业务资源并与其他操作隔离,确保了这些资源在后续阶段中能够被正确地使用或释放。这避免了资源冲突和数据不一致的问题。
幂等性保证,Confirm和Cancel阶段的操作都需要满足幂等性。这意味着无论这些阶段被执行多少次,只要参数相同,结果都应该相同。这确保了即使在网络故障、超时重试或并发请求的情况下,数据的一致性也不会被破坏。
事务回滚与补偿,如果Try阶段失败或事务被取消,TCC通过Cancel阶段来撤销预留的业务资源并释放它们。这实现了事务的回滚和补偿操作,确保了数据能够恢复到一致的状态。
全局事务管理,TCC方案通常包含一个全局事务管理器来管理和控制整个事务活动。它会记录并维护全局事务的事务状态和每个参与方的分支事务状态。当所有分支事务的Try阶段都执行成功时,全局事务管理器会自动调用每个分支事务的Confirm阶段操作来完成分布式事务;而当某些分支事务执行失败时,它会调用分支事务的Cancel操作来回滚分布式事务。