Tcc模式
有侵入的事务方案
- 事务控制代码需要自己写
- 业务代码也需要修改
- 底层数据库表结构也要修改
AT事务适用于80%业务场景,在一些复杂的情况下,自动事务无法自动处理,就需要手动处理事务
TCC–两个阶段的三个操作
- 第一阶段
。Try-预留资源,冻结数据
。 - 第二阶段
。Confirm-确认资源,使用冻结数据完成业务处理
。Cancel-取消预留的资源,把之前预留的资源解冻/恢复回去
例子
第一阶段 Try
以账户服务为例,当下订单时要扣减用户账户金额:
假如用户购买 100 元商品,要扣减 100 元。
TCC 事务首先对这100元的扣减金额进行预留,或者说是先冻结这100元:
第二阶段 Confirm
如果第一阶段能够顺利完成,那么说明“扣减金额”