12.7、TCC模式实现
分类: Seata分布式事务
TCC 模式实现
TCC 模式是高性能的分布式事务模式。本节将学习如何实现 TCC 模式。
本节将学习:TCC 模式原理、Try-Confirm-Cancel、TCC 接口设计,以及 TCC 实现示例。
TCC 模式原理
三阶段说明
TCC 模式原理:
- Try:尝试执行,预留资源
- Confirm:确认执行,提交资源
- Cancel:取消执行,释放资源
流程图
Try-Confirm-Cancel
Try 阶段
Try 阶段:
- 尝试执行
- 预留资源
- 不提交事务
Confirm 阶段
Confirm 阶段:
- 确认执行
- 提交资源
- 完成事务
Cancel 阶段
Cancel 阶段:
- 取消执行
- 释放资源
- 回滚事务
TCC 接口设计
接口定义
public interface TccAction { boolean try(BusinessActionContext context); boolean confirm(BusinessActionContext context); boolean cancel(BusinessActionContext context); }
TCC 实现示例
实现示例
@LocalTCC public interface InventoryTccAction { @TwoPhaseBusinessAction( name = "deductInventory", commitMethod = "confirm", rollbackMethod = "cancel" ) boolean try(BusinessActionContext context, @BusinessActionContextParameter(paramName = "productId") Long productId, @BusinessActionContextParameter(paramName = "quantity") Integer quantity); boolean confirm(BusinessActionContext context); boolean cancel(BusinessActionContext context); }
官方资源
- Seata TCC 模式:https://seata.io/docs/dev/mode/tcc-mode/
本节小结
在本节中,我们学习了:
第一个是 TCC 模式原理。 三阶段提交原理。
第二个是 Try-Confirm-Cancel。 三个阶段的职责。
第三个是 TCC 接口设计。 如何设计 TCC 接口。
第四个是 TCC 实现示例。 TCC 模式的实现示例。
这就是 TCC 模式实现。TCC 模式适合高性能场景。
在下一节,我们将学习 Saga 模式实现。