Saga 理论:LLT 与补偿语义
2026/8/22大约 2 分钟
分布式事务系列 · 阶段 3D · Saga · 第 27/49 篇 · 🚧 占位待学
上一篇:《TCC 源码:切面拆解、分支注册与 Fence 实现》
下一篇:《编排 vs 协同:两种协调风格》
学习大纲:《分布式事务学习总纲》
状态:待学习。 本文为占位文档:知识点清单、实验与验收标准已就绪,正文待按「先学习、先实验、再撰写」补全。
对应总纲单元:阶段 3D · 单元 3D.1
一、本文要解决的问题
1987 年的论文怎么解决「长事务」?为什么补偿是业务反向操作而不是数据库回滚?Saga 的灵魂在理论,先把语义吃透再碰框架。
二、知识点清单
- LLT(Long Lived Transaction)的定义与产生背景
- 拆解:LLT = T1..Tn 子事务 + C1..Cn 补偿
- 补偿的语义:业务层面的反向操作(如「取消冻结」而非 UPDATE 回滚)
- 补偿必须最终成功的设计约束;什么样的操作没法补偿
三、动手实验(学习时必须真跑)
- 读原论文(Sagas, SIGMOD 1987)前两节,写一页笔记
四、验收标准(全部通过才进入下一篇)
五、写作提示(补正文时遵守)
- 开篇问题驱动;结构走「是什么 → 为什么 → 怎么做 → 背景知识」
- 所有代码、命令、输出必须先在本机跑通再写入,不得杜撰
- 版本口径以总纲环境清单为准(Apache Seata 2.6.0 / MySQL 8.0 / RocketMQ 5.x / Spring Boot 3.x)
- 涉及版本敏感结论时标注出处与时间
本篇完成后,把文首导航块的「🚧 占位待学」去掉,并在总纲处打卡。