分布式事务TCC两阶段提交

て烟熏妆下的殇ゞ 提交于 2020-03-10 11:35:41

分布式事务TCC两阶段提交

两阶段提交

在提交事务的过程中需要在多个节点之间进行协调,而各节点对锁资源的释放必须等到事务最终提交时,比较耗时,锁资源发生冲突的概率增加,当事务的并发量达到一定数量的时候,就会出现大量事务积压甚至出现死锁,系统性能就会严重下滑。
两阶段提交

TCC型事务

TCC属于补偿型柔性事务,本质也是一个两阶段型事务。

TCC(Try-Confirm-Cancel)

TCC分三部分,如下所述:

  1. Try: 尝试执行业务;
  2. Confirm: 确认执行业务;
  3. Cancel: 取消执行业务;

TCC的思想

实例

  • Try 操作
    tryX 下单系统创建待支付订单
    tryY 冻结账户红包200元
    tryZ 冻结资金账户800元

  • Confirm 操作
    confirmX 订单更新为支付成功
    confirmY 扣减账户红包200元
    confirmZ 扣减资金账户800元

  • Cancel 操作
    cancelX 订单处理异常,资金红包退回,订单支付失败
    cancelY 冻结红包失败,账户余额退回,订单支付失败
    cancelZ 冻结余额失败,账户红包退回,订单支付失败

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!