MST

星途 面试题库

面试题:微服务架构下Spring Cloud Seata的事务模式有哪些及适用场景

在微服务架构中,Spring Cloud Seata提供了多种事务模式,请列举这些事务模式,并简要说明每种模式的适用场景。
12.9万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试
  • AT模式
    • 适用场景:适用于大多数微服务架构下的事务场景,尤其是对业务侵入性要求较低的场景。当各微服务之间调用涉及数据库操作,且希望在不改变业务逻辑太多的情况下实现分布式事务时,AT模式非常合适。例如电商系统中的下单、库存扣减、支付等操作,通过AT模式可以在不同数据库间保证事务一致性,业务代码只需关注自身业务逻辑,无需额外编写复杂的事务控制代码。
  • TCC模式
    • 适用场景:适用于对性能要求较高,且业务场景需要对资源进行预留和确认的场景。比如在一些高并发的场景下,涉及资金、库存等关键资源的操作,需要对资源进行初步锁定(Try阶段),再根据最终结果进行确认或取消(Confirm/Cancel阶段)。例如航空售票系统,在用户下单时先锁定机票库存(Try),支付成功后确认扣减库存(Confirm),若支付失败则取消库存锁定(Cancel)。
  • Saga模式
    • 适用场景:适用于长事务场景,各子事务执行时间较长且可能需要异步执行的情况。当业务流程由多个可补偿的步骤组成,并且希望每个步骤都能独立执行和回滚时,Saga模式较为适用。例如在一个复杂的订单处理流程中,涉及订单创建、物流分配、财务结算等多个环节,若其中某个环节出现问题,可以通过执行相应的补偿操作来恢复到事务开始前的状态。
  • XA模式
    • 适用场景:适用于传统的关系型数据库场景,且数据库本身支持XA协议。当对数据一致性要求极高,并且参与事务的微服务都使用支持XA协议的数据库时,XA模式能确保严格的事务一致性。例如银行系统中的转账操作,需要在不同账户间保证资金的准确转移,XA模式能保证在多个数据库操作间的原子性。