零基础一文读懂分布式系统( 八 )

\n

Paxos 共识算法是由莱斯利·兰伯特(Leslie Lamport)在 1990 年提出的一种基于消息传递且具有高度容错特性的一致性算法 , 它在分布式系统应用领域有着重要的地位 , 包括 Google 在内的许多公司的大型分布式系统采用的都是该算法 。 而我们第一阶段的探索也可以在此处结束 , 接下来是第二阶段 。

\n

四、解决掉系统中的「坏人」

\n

Paxos 虽然能实现共识 , 但它的算法是建立在所有计算机都是「好人」的基础上的 , 这些计算机要么沉默 , 要么发出正确的声音 , 因此整个系统中只有一种声音 , 大家就这个声音达成共识即可 。 而如果计算机中有「坏人」 , 系统里就会出现坏人的声音和好人的声音 , Paxos 算法无法处理这一情况 。

\n

我们需要在有坏人的情况下也可以实现共识的算法 , 有没有可能?莱斯利·兰伯特建立了一个模型来讨论这种可能性 , 该模型被称作拜占庭将军问题 , 其中的拜占庭节点就是坏人节点 , 它们会传递干扰信息阻碍整个系统达成共识 。

\n

在论文《The Byzantine Generals Problem》中 , 兰伯特提出了几种解决方案 , 其中一种可以在拜占庭节点不到 1/3 时实现系统的共识 。 也就是说 , 如果系统中坏人的数量少于 1/3 , 就可以通过算法实现共识 。

推荐阅读