编辑
2023-11-25
Java
00
请注意,本文编写于 531 天前,最后修改于 531 天前,其中某些信息可能已经过时。

Seata是一个分布式事务解决方案,它提供了四种不同的模式来满足不同的分布式事务需求。这四种模式分别是:AT模式、TCC模式、Saga模式和XA模式。

image.png

  1. AT模式(Automatic Transaction Mode) AT模式是Seata的默认模式,它是一种最终一致性的分阶段事务模式,无需对业务代码进行侵入性修改。在AT模式中,Seata会自动将分布式事务切分为多个本地事务,并通过在每个参与者(RM)上注册和管理这些本地事务来实现事务的一致性。AT模式的优点是性能较好,无需对业务代码进行修改,但缺点是事务是最终一致性的。

  2. TCC模式(Try-Confirm-Cancel Mode) TCC模式是一种最终一致性的分阶段事务模式,需要对业务代码进行侵入性修改。在TCC模式中,业务逻辑被划分为三个阶段:Try、Confirm和Cancel。在Try阶段,尝试执行业务操作并预留资源;在Confirm阶段,确认执行业务操作;在Cancel阶段,取消执行业务操作并释放资源。TCC模式的优点是性能较好,不依赖数据库事务,但缺点是需要对业务代码进行修改,且事务是最终一致性的。

  3. Saga模式 Saga模式是一种长事务模式,需要对业务代码进行侵入性修改。在Saga模式中,事务被划分为多个阶段,每个阶段都有对应的补偿操作。当一个阶段失败时,可以通过执行补偿操作来回滚之前的操作。Saga模式的优点是可以处理长时间运行的事务,但缺点是需要对业务代码进行修改,且事务是最终一致性的。

  4. XA模式 XA模式是一种强一致性的分阶段事务模式,需要对业务代码进行侵入性修改。在XA模式中,Seata会通过协调器(TC)来管理全局事务,并通过XA协议来实现分布式事务的一致性。XA模式的优点是事务的强一致性,但缺点是性能较差,且依赖关系型数据库实现事务。

适用场景

AT模式适用场景:

  • 不希望对业务进行改造的场景:AT模式是一种无侵入的分布式事务解决方案,可以在不修改业务代码的情况下实现分布式事务的一致性。它适用于那些不希望对现有业务逻辑进行大规模改动的场景。

TCC模式适用场景:

  • 对性能有较高要求的场景:TCC模式是一种高性能的分布式事务解决方案,适用于那些对性能要求较高的核心系统。它通过将事务拆分为Try、Confirm和Cancel三个阶段,可以灵活控制资源的锁定粒度,减少资源锁持有时间,从而提高系统的并发性能。

Learn more:

  1. 分布式事务Seata 及其三种模式详解

  2. TCC适用模型与适用场景分析

  3. Seata AT模式适用场景及相关原理 - 掘金

  4. 分布式事务Seata 及其三种模式详解

  5. 16. 分布式事务seata的四种模式 - 简书

  6. 分布式事务(Seata) 四大模式详解 - 掘金

  7. 分布式事务 Seata 及其三种模式详解

  8. 分布式事务的4种模式 - 知乎

  9. 分布式事务AT、TCC、Saga、XA 模式分析对比 - JaminX86 - 博客园

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!