跳到主要内容

Spring Cloud Alibaba 之 Seata分布式事务服务;TCC事务模式机制(二十三)

Seata TCC 事务模式

AT模式基本上能满足我们使用分布式事务大部分需求,但涉及非关系型数据库与中间件的操作、跨公司服务的调用、跨语言的应用调用就需要结合TCC模式

http://seata.io/zh-cn/docs/dev/mode/tcc-mode.html

一个分布式的全局事务,整体是两阶段提交(Try - [Comfirm/Cancel])的模型

根据两阶段行为模式的不同,我们将分支事务划分为 Automatic (Branch) Transaction ModeTCC (Branch) Transaction Mode

 

AT模式(参考链接 TBD)基于 支持本地 ACID 事务关系型数据库

  • 一阶段 prepare 行为:在本地事务中,一并提交业务数据更新和相应回滚日志记录
  • 二阶段 commit 行为:马上成功结束,自动 异步批量清理回滚日志
  • 二阶段 rollback 行为:通过回滚日志,自动 生成补偿操作,完成数据回滚

TCC模式,不依赖于底层数据资源的事务支持(需要程序员编写代码实现提交和回滚):

  • 一阶段 prepare 行为:调用 自定义 的 prepare 逻辑
  • 二阶段 commit 行为:调用 自定义 的 commit 逻辑
  • 二阶段 rollback 行为:调用 自定义 的 rollback 逻辑

TCC模式,是指支持把 自定义 的分支事务纳入到全局事务的管理中

通俗来说,Seata的TCC模式就是手工版本的AT模式,它允许你自定义两阶段的处理逻辑而不需要依赖AT模式的undo_log回滚表

1、创建数据库、表、插入数据等

(1)accountdb账户库、account账户表