TCC和AT在第一阶段都会直接将事务提交(commit),如果需要回滚,TCC则需要在Cancel阶段自己实现一段业务逻辑来完成数据的回滚。注意,此时是写补偿sql来完成回滚保证数据的一致性。

而AT模式会将一阶段执行的sql记录在undo_log表中,然后通过整个undo_log来自动完成回滚,不需要程序员手动写补偿代码。这样也是阿里首推AT模式的原因,一个注解即可搞定分布式事务。


其次,TCC可以不依赖于关系型数据库,比如我们的远程操作可能是操作Redis、MongoDB等。因为TCC中的各阶段的逻辑都是我们手动来实现的,所以可以不依赖于数据库事务。

而AT模式必须要依赖于数据库事务,也就是说远程服务的方法必须加@Transaction注解,这样TM才能感知到。

分布式事务XA、TCC、AT总结相关推荐

  1. Seata分布式事务XA与AT全面解析

    Seata 分布式事务 XA与AT Seata 是一款开源的分布式事务解决方案,star高达17300+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务. 注:本期分享借鉴于 ...

  2. mysql xid原理_MySQL数据库分布式事务XA实现原理分析

    [IT168 技术]MySQL XA原理 MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布 ...

  3. mysql xa 实现_MySQL数据库分布式事务XA的实现原理分析

    1 原理 关于MySQL数据库的分布式事务XA,分布式事务实现的原理,可见[3];关于MySQL XA的说明,可见[1][2]. MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨 ...

  4. ShardingSphere RAW JDBC 分布式事务XA 代码示例

    ShardingSphere RAW JDBC 分布式事务XA 代码示例 项目工程在:transaction-2pc-xa-raw-jdbc-example 代码简介     基于ShardingSp ...

  5. MySQL数据库分布式事务XA实现原理分析

    MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分布式事务,需要应用层介入作为协调者(崩溃时的 ...

  6. 分布式事务:XA,2PC,3PC,TCC,SEATA(AT)

    一.分布式事务产生原因 1.原本的数据是单库单表存储,随着业务的不断扩大数据量不断增多,单库性能支撑不了数据的更新与访问.为了解决数据库上的瓶颈,将数据库进行水平拆分,原来一个库里的事务操作,现在变成 ...

  7. 6 张图带你彻底搞懂分布式事务 XA 模式

    作者 | 朱晋君 来源 | 阿里巴巴云原生公众号 XA 协议是由 X/Open 组织提出的分布式事务处理规范,主要定义了事务管理器 TM 和局部资源管理器 RM 之间的接口.目前主流的数据库,比如 o ...

  8. [转]分布式事务之TCC服务设计和实现注意事项

    1.TCC简介 TCC是一种比较成熟的分布式事务解决方案,可用于解决跨库操作的数据一致性问题: TCC是服务化的两阶段编程模型,其Try.Confirm.Cancel 3个方法均由业务编码实现: 其中 ...

  9. 分布式事务模型--TCC

    本文来说下分布式事务模式之TCC,接着上文XA Specification来说 文章目录 概述 TCC TCC 模型将事务的提交划分为两个阶段 举个例子 特点剖析 本文小结 概述 事务是一组不可分组的 ...

最新文章

  1. oracle根据一张表更新另外一张表
  2. 24点游戏c语言链表做法,C语言实现24点程序(示例代码)
  3. 比杠精网友更可怕的,是懂王同事
  4. Redis连接出现Error: Connection reset by peer的问题是由于使用Redis的安全模式
  5. Linq to sql和lambda
  6. HBase 6、用Phoenix Java api操作HBase
  7. PAT甲级题目翻译+答案 AcWing(哈希表)
  8. 苹果mac休眠快捷键_Mac技巧|如何高效使用苹果便笺?用便笺快捷键快速完成操作...
  9. ionic常见问题及解决方案
  10. 圆心角 圆弧上点坐标_数控加工中心CNC的G02/G03圆弧指令的I、J、与R的区别
  11. 二十多岁不信,三十多岁却深信不疑的道理
  12. 测试项目开源_测验您对开源的承诺
  13. coloros11跟Android,安卓10与安卓11究竟差异在哪里?我们拿这两台新机试了一下
  14. java位宽_java数据类型
  15. WebStorm汉化包下载(以及Android Studio,IntelliJIDEA等的汉化包下载)
  16. 有关电动自行车上牌的知识,快来围观~
  17. Java毕设项目博雅楼自习室预约系统计算机(附源码+系统+数据库+LW)
  18. 腾讯校园招聘--一面(技术1对1)面经
  19. OVER(PARTITION BY)使用方法
  20. Flutter FFI实践

热门文章

  1. 因与公司存在分歧,寒武纪 CTO 梁军离职了
  2. cellpadding 和cellspacing区别
  3. dubbo2.7.x调用出现错误No provider available from registry localhost:9090 for service问题汇总并持续追踪
  4. oracle awr使用方式,Oracle中AWR的使用
  5. A除以B(模拟除法)
  6. 纯化水系统加药配制规程
  7. Attention机制学习(一)传统Attention机制
  8. C++常见内存错误及解决方案
  9. 请问哪里可以下载到惠普打印机的驱动,统信UOS系统
  10. 缺陷管理工具比较(转自测试达人小龙虾的博客)