XA 的工程代价:为什么互联网公司不用它
2026/8/22大约 2 分钟
分布式事务系列 · 阶段 2 · 理论与协议 · 第 12/49 篇 · 🚧 占位待学
上一篇:《MySQL XA 实操:亲手跑一遍两阶段》
下一篇:《三角色与全局事务生命周期》
学习大纲:《分布式事务学习总纲》
状态:待学习。 本文为占位文档:知识点清单、实验与验收标准已就绪,正文待按「先学习、先实验、再撰写」补全。
对应总纲单元:阶段 2 · 单元 2.5
一、本文要解决的问题
标准 XA 是教科书答案,为什么生产环境几乎绝迹?用一次压测找到答案,并由此引出 Seata AT 的核心动机:缩短锁持有时间。
二、知识点清单
- 锁跨阶段持有:从 PREPARE 到 COMMIT 期间行锁不释放,并发串行化
- 协调者单点与故障恢复的运维复杂度
- 吞吐差距的数量级直觉(结合自己的压测数据)
- XA 的合理生存空间:低并发、强一致刚需、无法改造业务时
三、动手实验(学习时必须真跑)
- Spring Boot + Atomikos 双库 XA demo 跑通转账
- 同一业务分别用 XA 与本地事务简单压测,记录吞吐与锁等待对比
四、验收标准(全部通过才进入下一篇)
五、阶段验收(本篇是阶段 2收尾篇)
六、写作提示(补正文时遵守)
- 开篇问题驱动;结构走「是什么 → 为什么 → 怎么做 → 背景知识」
- 所有代码、命令、输出必须先在本机跑通再写入,不得杜撰
- 版本口径以总纲环境清单为准(Apache Seata 2.6.0 / MySQL 8.0 / RocketMQ 5.x / Spring Boot 3.x)
- 涉及版本敏感结论时标注出处与时间
本篇完成后,把文首导航块的「🚧 占位待学」去掉,并在总纲处打卡。