事务:TCC补偿性事务

来自WHY42
Riguz讨论 | 贡献2021年5月3日 (一) 07:17的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

TCC是分布式事务实现的一种方式

TRYING
主要是对业务系统做检测及资源预留
CONFIRMING
主要是对业务系统做确认提交,TRYING阶段执行成功并开始执行CONFIRMING阶段时,默认CONFIRMING阶段是不会出错的。即:只要TRYING成功,CONFIRMING一定成功。
CANCELING
主要是在业务执行错误,需要回滚的状态下执行的业务取消,预留资源释放

其中CONFIRMING和CANCELING都需要支持幂等操作。

而幂等性则是指业务方法调用一次与调用多次的执行返回结果是一样的。


TCC 模式类似2PC,不同点在于:

  • 实现是在业务层而不是资源层
  • 没有prepare阶段,try操作即进行了资源准备与操作
  • 可以根据业务要求实现资源锁定的粒度