Java面试题更新 2026-08-05

在分布式系统架构中,Seata 提供了哪几种分布式事务解决方案?请分别阐述它们的工作原理和适用场景。

后端开发技术原理技术选型方案权衡

考察说明

考查候选人对 Seata 分布式事务模式及其适用场景的理解,并检验其在实际架构中选型的能力。

回答思路

  1. 【回答框架 1】Seata 主要支持三种模式:AT、TCC 和 Saga。AT 模式基于全局锁和本地事务,通过拦截 SQL 自动生成 undo log,对业务侵入小,但性能开销较高,适用于对一致性要求高、并发较少的场景。
  2. 【回答框架 2】TCC 模式要求业务实现 Try、Confirm、Cancel 三个接口,将资源检查与操作分离,灵活但侵入大,适用于强一致性且要求高性能的场景,如金融支付。
  3. 【回答框架 3】Saga 模式采用长事务,通过事件驱动或状态机编排,最终一致,适用于业务流程长、允许中间状态不一致的跨服务事务。
  4. 【回答框架 4】实际选择需结合一致性要求、性能敏感度和改造成本:AT 最简单但可能死锁,TCC 最可靠但开发量大,Saga 适合大规模长事务。Seata 还支持 XA 模式,但需数据库支持且相对较少用。
  5. 【关键点 1】Seata 支持 AT、TCC、Saga 和 XA 四种模式。
  6. 【关键点 2】AT 模式通过全局锁和 undo log 实现,对业务代码侵入最小。
  7. 【关键点 3】TCC 模式需要业务实现 Try、Confirm、Cancel,性能好但开发复杂。
  8. 【关键点 4】Saga 模式适合长事务,采用最终一致性。
  9. 【关键点 5】XA 模式依赖数据库事务,实现简单但性能受限。
  10. 【易错点 1】不要将 AT 模式与 JPA 或 MyBatis 等 ORM 框架做对比,AT 是资源层代理。
  11. 【易错点 2】Saga 模式不保证隔离性,可能导致中间状态不可见。
  12. 【易错点 3】TCC 模式要求 Confirm 和 Cancel 操作必须幂等。