分布式系统
这条精选路线先解决“节点怎样描述先后”,再进入“节点怎样在故障中达成一致”。三篇读完后,再扩展到复制、调度和存储系统会更容易。
先读这 3 篇
Section titled “先读这 3 篇”Lamport Clock
理解没有全局时钟时,系统怎样描述事件之间的先后关系。
先把“时间”和“顺序”分开,后面的协议才不会混乱。
Paxos
理解节点和消息都可能失败时,一组参与者如何对一个值达成一致。
把安全性与活性分开看,不要先陷入角色名词。
Raft
通过 leader election、log replication 和 safety 理解共识的工程结构。
用更明确的模块划分,对照 Paxos 建立实现直觉。
读完你应该能回答
Section titled “读完你应该能回答”- 逻辑时钟能告诉你什么,又不能告诉你什么?
- 共识协议为什么不能只靠“多数节点投票”这一句话解释?
- Paxos 与 Raft 的核心目标相同,为什么工程表达方式不同?
- 网络延迟、节点宕机和消息重复分别会影响协议的哪一部分?