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架构图
架构组件说明:
-
TC (Transaction Coordinator):事务协调器
- 维护全局事务和分支事务的状态
- 驱动全局事务提交或回滚
-
TM (Transaction Manager):事务管理器
- 开启/提交/回滚全局事务
- 负责全局事务边界定义
-
RM (Resource Manager):资源管理器
- 注册分支事务
- 管理本地事务资源
- 向TC汇报事务状态
工作流程:
- TM向TC发起全局事务
- RM向TC注册分支事务
- TM通知TC提交/回滚全局事务
- TC协调所有RM完成最终提交/回滚
该图表展示了Seata在AT模式下的核心组件交互,如需展示TCC/Saga模式,可在此基础上扩展分支事务处理逻辑。