Seata 面试题解析

Seata的AT、TCC、Saga模式的区别及适用场景?
AT模式下的全局锁冲突如何解决?
如何设计幂等性接口防止Seata事务悬挂?
Seata的TC(事务协调器)高可用如何实现?
Seata如何与Spring Cloud整合?
Seata的事务隔离级别是如何保证的?
如何监控Seata的事务执行状态?
Seata的Undo Log存储机制是什么?
如何处理Seata的长事务超时问题?
Seata与消息队列(如RocketMQ)如何实现最终一致性?

实战模拟:

场景:下单服务调用库存服务扣减库存时超时,导致分布式事务回滚,但库存已扣减,如何解决?
答案要点:
1. 引入事务状态补偿表
2. 使用TCC模式手工回滚
3. 通过MQ异步触发库存回补

seata架构图

Business Service
Application
1. Begin Global Transaction
3. Commit/Rollback
2. Register Branch
4. Report Status
Store Transaction Logs
Execute SQL
Execute SQL
ServiceA
ServiceB
Transaction Coordinator
Transaction Manager
Resource Manager
Database

架构组件说明:

  1. TC (Transaction Coordinator):事务协调器

    • 维护全局事务和分支事务的状态
    • 驱动全局事务提交或回滚
  2. TM (Transaction Manager):事务管理器

    • 开启/提交/回滚全局事务
    • 负责全局事务边界定义
  3. RM (Resource Manager):资源管理器

    • 注册分支事务
    • 管理本地事务资源
    • 向TC汇报事务状态

工作流程:

  1. TM向TC发起全局事务
  2. RM向TC注册分支事务
  3. TM通知TC提交/回滚全局事务
  4. TC协调所有RM完成最终提交/回滚

该图表展示了Seata在AT模式下的核心组件交互,如需展示TCC/Saga模式,可在此基础上扩展分支事务处理逻辑。

你可能感兴趣的:(中间件,seata,分布式)