Seata 是一个开源的分布式事务解决方案,提供了四种事务模式:AT、TCC、Saga 和 XA。其中,AT 模式和 TCC 模式是日常开发中最常用的两种。 它们虽然都属于两阶段提交(2PC)的演进,但核心设计思想、实现机制和适用场景有很大区别。简单来说:AT 模式是框架自动完成的数据库级代理,而 TCC 模式是需要开发者手工编写代码的业务级补偿。 以下是两者的详细区别: --- 1. 核心机制对比 AT 模式(Automatic Transaction)—— 自动化、无侵入 AT 模式是 Seata 创新的一种非侵入式分布式事务解决方案。它依赖于支持本地 ACID 事务的关系型数据库。 第一阶段(执行并提交): Seata 的 JDBC 代理会拦截业务 SQL,解析 SQL 语义,找到要更新的业务数据,保存数据修改前的状态(before image)和修改后的状态(after image)到 表中。然后直接提交本地事务,释放本地数据库锁。 第二阶段(决议): 如果全局提交: 异步清理 中的记录,非常轻量快速。 如果全局回滚: 读取 中的 ,生成反向 SQL(例如把 UPDATE...