12.7TCC模式实现

分类: 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); }

官方资源

本节小结

在本节中,我们学习了:

第一个是 TCC 模式原理。 三阶段提交原理。

第二个是 Try-Confirm-Cancel。 三个阶段的职责。

第三个是 TCC 接口设计。 如何设计 TCC 接口。

第四个是 TCC 实现示例。 TCC 模式的实现示例。

这就是 TCC 模式实现。TCC 模式适合高性能场景。

在下一节,我们将学习 Saga 模式实现。