美文网首页
TCC 事务

TCC 事务

作者: quanCN | 来源:发表于2022-12-31 17:50 被阅读0次

    简介

    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

    相关文章

      网友评论

          本文标题:TCC 事务

          本文链接:https://www.haomeiwen.com/subject/kgrqcdtx.html