库存消息消费的正确性设计——从幂等窗口到批量流水线
在消息可能重复投递的前提下,如何把库存累加计数的偏差控制在已知、可观测的窗口内,而不是追求无法实现的"完美恰好一次"。从幂等两阶段、崩溃窗口、批量聚合到白名单防护、容错停机、可观测性,每一层设计都在消除一个具体的、能用数据量化的风险。
在消息可能重复投递的前提下,如何把库存累加计数的偏差控制在已知、可观测的窗口内,而不是追求无法实现的"完美恰好一次"。从幂等两阶段、崩溃窗口、批量聚合到白名单防护、容错停机、可观测性,每一层设计都在消除一个具体的、能用数据量化的风险。
级联故障的根因不是下游挂了,是上游在等待中耗尽资源。熔断在失败率升高时停止调用,降级在不可用时给兜底响应。两者配套才有意义——光熔断不降级是快死,光降级不熔断挡不住资源耗尽。
到了「跑得稳」才真正开始谈架构——不是因为你终于可以展示设计模式,是因为你手上有了真实信息。容错、可观测、灰度、预案,该花的复杂度要舍得花;但不要为「万一」做架构,把复杂度放在产生最大价值的地方。