补偿事务 (TCC) ?
补偿事务 (TCCI
针对每个操作,都要注册一个与其对应的确认和补偿(撤销)操作。它分为三个阶段:
Try 阶段主要是对业务系统做检测及资源预留
Confirm 阶段主要是对业务系统做确认提交,Try阶段执行成功并开始执行 Confirm阶段时,默认Confirm阶段是不会出错的。即:只要Try成功, Confirm一定成功
Cancel阶段主要是在业务执行错课,需要回滚的状态下执行的业多取消,预留資源释放。
举个例子,假入 Bob 要向 Smith 转账,思路大概是:我们有一个本地方法,里面依次调用首先在 Try 阶段,要先调用远程接口把 Smith 和 Bob 的钱给冻结起来
在 Confirm 阶段,执行远程调用的转账的操作,转账成功进行解冻。
如果第2步执行成功,那么转账成功,如果第二步执行失败,则调用远程冻结接口对应的解冻方法(Cancel)。
优点:跟2PC比起来,实现以及流程相对简单了一些,但数据的一致性比2PC也」
缺点:缺点还是比较明显的,在2.3步中都有可能失败。TCC属于应用层的一种补 二工月程序员在实现的时候多写很多补偿的代码,在一些场景中 二止多流程可台用TCC下太好定义下处理