重试解决不了最终一致性:先认对问题
来源:var0.xyz — 2026-08-02
📋 概述
作者反思一个分布式消息处理的常见误区:当“订阅”事件早于“用户”事件到达时,工程师倾向把它当作错误、丢进死信队列再重试。但分布式系统本就保证“最终”而非“同时”送达,信息未齐不是故障而是系统的固有状态。正确做法是存储所有到达的数据,等齐所需片段再执行,无需重试、无需死信队列、无需人工回放。重试只适用于真正的瞬时故障。
🔑 核心要点
- 信息未齐不是系统故障,而是最终一致性作为系统属性的正常表现
- 与其把缺数据当错误处理,不如先存下所有数据,等齐了再执行
- 这能消除死信队列、人工重放、以及对回放顺序的编排难题
- 重试并非无用,瞬时网络超时/丢包重试一次就够了
- 关键教训:先识别问题类别——可用性问题和最终一致性该用不同的工具
💡 金句
重试一次解决不了的问题,为什么重试五次就能解决?第二次和第六次之间有什么变化?
👍 0
👎 0
← 返回 Lobsters 首页