分布式事务TCC两阶段提交
两阶段提交
在提交事务的过程中需要在多个节点之间进行协调,而各节点对锁资源的释放必须等到事务最终提交时,比较耗时,锁资源发生冲突的概率增加,当事务的并发量达到一定数量的时候,就会出现大量事务积压甚至出现死锁,系统性能就会严重下滑。
TCC型事务
TCC属于补偿型柔性事务,本质也是一个两阶段型事务。
TCC(Try-Confirm-Cancel)
TCC分三部分,如下所述:
- Try: 尝试执行业务;
- Confirm: 确认执行业务;
- Cancel: 取消执行业务;
实例
-
Try 操作
tryX 下单系统创建待支付订单
tryY 冻结账户红包200元
tryZ 冻结资金账户800元 -
Confirm 操作
confirmX 订单更新为支付成功
confirmY 扣减账户红包200元
confirmZ 扣减资金账户800元 -
Cancel 操作
cancelX 订单处理异常,资金红包退回,订单支付失败
cancelY 冻结红包失败,账户余额退回,订单支付失败
cancelZ 冻结余额失败,账户红包退回,订单支付失败
来源:oschina
链接:https://my.oschina.net/wallenheng/blog/3190895