Skip to content
困难

一句话答案

SAGA 将长事务拆为多个本地事务,每个配一个补偿操作,失败时逆序执行补偿回滚,侵入性低于 TCC。

核心要点

两种执行方式:

  • 编排式:中心协调器控制步骤
  • 事件式:每步完成发事件触发下一步

vs TCC: SAGA 不需要 Try 锁定资源,侵入性更低,但隔离性更差

追问与易错

追问方向:

  • SAGA 隔离性怎么保证?
  • 编排式和事件式怎么选?
  • 补偿操作失败怎么办?

易错点:

  • ❌ SAGA 和 TCC 一样——SAGA 没有 Try 步骤
  • ❌ 补偿一定能成功——需要重试和人工兜底

💡 记忆锚点

SAGA 像旅行预订链:订机票T1→订酒店T2→租车T3,每步都真正提交。任一环节失败就逆序撤销:退车C3→退酒店C2→退机票C1。比TCC轻量(不需要预留资源),但中间状态对外可见(没有隔离性)。编排式有指挥官,事件式靠接力赛。