Seata-AT 如何保证分布式事务一致性
作者 | 陈健斌(funkye) github id: a364176773 来源| 阿里巴巴云原生公众号 Seata 是一款开源的分布式事务解决方案,star 高达 18100+,社区活跃度极高,致力于在微服务架构下提供高性能和简单易用的分布式事务服务,本文将剖析 Seata-AT 的实现原理,让用户对 AT 模式有更深入的认识。 Seata 事务模式是什么? 1. Seata 对事务的定义 Seata 定义了全局事务的框架。 全局事务定义为若干分支事务的整体协调: TM 向 TC 请求发起(Begin)、提交(Commit)、回滚(Rollback)全局事务。 TM 把代表全局事务的 XID 绑定到分支事务上。 RM 向 TC 注册,把分支事务关联到 XID 代表的全局事务中。 RM 把分支事务的执行结果上报给 TC。(可选) TC 发送分支提交(Branch Commit)或分支回滚(Branch Rollback)命令给 RM。 Seata 的全局事务处理过程,分为两个阶段: 执行阶段 > :执行分支事务,并保证执行结果满足是可回滚的(Rollbackable)和持久化的(Durable)。 完成阶段 > :根据执行阶段结果形成的决议,应用通过 TM 发出的全局提交或回滚的请求给 TC,> TC 命令 RM 驱动 分支事务 进行 Commit 或 Rollback。