微服务面试的必答题排行榜上,”跨服务的数据一致性怎么保证”常年第一。大多数候选人能背出 2PC、TCC、Saga、本地消息表,但一被追问”你们系统里具体哪一笔写操作用了哪种、为什么、后来呢”就露馅了——因为答案只有在真实系统里拆过一次跨库写操作的人才讲得出来。
本篇就拆这样一笔:工人在 App 上点了一次报工,系统按 BOM 自动把原料从线边仓扣掉——这笔”倒冲扣料”横跨 MES 主库和 WMS 库,是全套系统里一致性要求最高的写路径。在拆它之前,先把地基讲清楚:MES 和 WMS 的边界画在哪、跨库取数的纪律是什么。上一篇状态机篇讲到报工驱动状态机,本篇讲报工同时驱动了什么。