
507 | Saga模式:分布式事务的另一种解法场景引入旅游团的故事:你参加了一个旅游团:导游打电话订酒店 ✓导游打电话订机票 ✓导游打电话订景点门票 ✗(满了!)问题:酒店和机票已经订了,景点订不了,咋整?解决方案:打电话取消酒店打电话退机票这就是Saga的核心思想:用补偿代替回滚。什么是SagaSaga = 长事务的分解Saga将一个长事务分解成多个短事务,每个短事务都有对应的补偿事务。传统事务: A → B → C(全部成功或全部失败) Saga: A → B → C ↓ ↓ ↓ ┴ ┴ ┴ 补偿 补偿 补偿(任意一步失败时执行)Saga vs 2PC2PC(两阶段提交)准备阶段: 协调者 → 所有参与者:"准备好了吗?" 参与者 → 协调者:"准备好了" / "没准备好" 提