TCC 事务

2022-12-31  本文已影响0人  quanCN

简介

TCC是一种常见的分布式事务机制,是“Try-Confirm-Cancel”三个单词的缩写,是有数据库专家Pat Helland在2007年撰写的论文《Life beyond Distributed Transactions: An Apostate’s Opinion》中提出。

TCC组成

TCC对原有业务侵入性较强,要求业务处理过程必须拆分问“预留业务资源”和“确认/释放消费资源”两个子过程,就如同TCC的名字一样,它分为三个阶段

  1. Try
    尝试执行阶段,完成所有业务可执行性的检查(保障一致性),并且预留好全部需要用到的业务资源(保障隔离性)
  2. Confirm
    确认执行阶段,不进行任何业务检查,直接使用Try阶段准备的资源来完成业务处理。Confirm阶段可能会重复执行,因此本阶段执行的操作需要具备幂等性
  3. Cancel
    取消执行阶段,释放Try阶段预留的业务资源。Cancel阶段可能会重复执行,因此本阶段执行的操作也需要具备幂等性

例子

下图是一个TCC的一个基本流程,通常在TCC中会存在一个coordinator(协调员)用于确保所有参与者确认他们的Confirm/Cancel:


  1. 发起者调用coordinator开始TCC业务
  2. 发起者对一个或多个参与者调用 POST (Try) 以创建预订
  3. 发起者调用coordinator确认或取消交易
  4. coordinator根据发起者对每个参与者调用PUT(Confirm)或 DELETE(Cancel)

框架

seata-java-阿里
seata-go-golang
dtm-golang

上一篇下一篇

猜你喜欢

热点阅读