事务:TCC补偿性事务:修订间差异

来自WHY42
Riguz留言 | 贡献
无编辑摘要
Riguz留言 | 贡献
无编辑摘要
 
第1行: 第1行:
TCC是分布式事务实现的一种方式
TCC是分布式事务实现的一种方式


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


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


TCC 模式类似2PC,不同点在于:
* 实现是在业务层而不是资源层
* 没有prepare阶段,try操作即进行了资源准备与操作
* 可以根据业务要求实现资源锁定的粒度


*http://www.roncoo.com/article/detail/124243
*http://www.roncoo.com/article/detail/124243
[[Category:Distributed]]
[[Category:Distributed]]

2021年5月3日 (一) 07:17的最新版本

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

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

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

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


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

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