外观
一句话答案
SAGA 将长事务拆为多个本地事务,每个配一个补偿操作,失败时逆序执行补偿回滚,侵入性低于 TCC。
核心要点
两种执行方式:
- 编排式:中心协调器控制步骤
- 事件式:每步完成发事件触发下一步
vs TCC: SAGA 不需要 Try 锁定资源,侵入性更低,但隔离性更差
追问与易错
追问方向:
- SAGA 隔离性怎么保证?
- 编排式和事件式怎么选?
- 补偿操作失败怎么办?
易错点:
- ❌ SAGA 和 TCC 一样——SAGA 没有 Try 步骤
- ❌ 补偿一定能成功——需要重试和人工兜底
💡 记忆锚点
SAGA 像旅行预订链:订机票T1→订酒店T2→租车T3,每步都真正提交。任一环节失败就逆序撤销:退车C3→退酒店C2→退机票C1。比TCC轻量(不需要预留资源),但中间状态对外可见(没有隔离性)。编排式有指挥官,事件式靠接力赛。