TCC模式与AT模式非常相似,每阶段都是独立事务,不同的是TCC通过人工编码来实现数据恢复。需要实现三个方法:
- Try:资源的检测和预留;
- Confirm:完成资源操作业务;要求Try成功Confirm一定要能成功。
- Cancel:预留资源释放,可以理解为Try的反向操作。 举例,一个扣减用户余额的业务。假设账户A原来余额是100,需要余额扣减30元。
原有可用金额100
阶段一(Try): 检查余额是否充足,如果充足则冻结金额增加30元,可用余额扣除30
- 阶段二:假如要提交(Confirm),则冻结金额扣减30
- 阶段三:如果要回滚(Cancel),则冻结金额扣减30,可用余额增加30