一致性不是一个局部属性
来源:n-the-loop.com — 2026-10-06
📋 概述
这篇短文指出开发者常见的错误假设:一致性可以在单个组件内部实现。Kafka 的 exactly-once 是警示案例——让写入做到 exactly-once 花了一队分布式系统工程师数年时间,新增多个组件并重写了旧组件,而做这件事的人最终坦率承认:exactly-once 是端到端的保证,应用本身也必须被设计成不去破坏它。由此得出两个实际后果:必须有人端到端地理解整个系统,因为没有任何单一组件能确认这个性质;也必须有人为它负责,因为每个组件的负责人都能正确地说自己那部分没问题。
🔑 核心要点
- 常见误区:认为一致性可以在单个组件内部达成
- Kafka 的 exactly-once 是警示:一队分布式系统工程师花了数年,新增组件并重写旧组件
- 建造者自己的原话是 "exactly-once 是端到端的保证",应用必须被设计成不违反它
- 后果一:必须有人端到端地理解整个系统,因为没有组件能独自确认该性质
- 后果二:必须有人对它负责,而每个组件负责人都能正确地说自己那部分没问题
- 结论:不要把全局的、有价值的性质交给机器并假定它被持有,这类保证根植于理解而非代码
💡 金句
不要把这些全局的、有价值的性质交给机器并假定它们被保住了。这类保证根植于理解,而不是代码。
👍 0
👎 0
← 返回 Lobsters 首页