分布式共识
什么是分布式共识
分布式系统最重要的抽象之一就是共识(consensus):所有的节点就某一项提议达成一致。
共识问题通常形式化如下:一个或多个节点可以提议(propose) 某些值,而集群中的所有有效节点根据共识算法进行协商,最终决议(decides) 采纳某个节点的提议。
而共识算法必须满足以下性质:
- 达成一致(Uniform agreement) - 没有两个节点的决定不同。
- 完整性(Integrity) - 每个节点最多决议一次。
- 有效性(Validity) - 如果一个节点决定了值
v
,则v
由某个节点所提议。 - 终止(Termination) - 由所有未崩溃的节点来最终决议。