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

\n

题外话:当我们知道这一点后 , 就能建立起关于去中心化的更有效的讨论 , 比如在此处就可以不泛泛而谈去中心化 , 而是:选出这个领导者的方法是否去中心化 。

\n

回到主题 。 需要领导者的共识算法的工作步骤大致是这样的:

\n

选出一个领导者;

\n

领导者提出一个结果;

\n

追随者确定是否同意这个结果;

\n

如果大家就结果达成了共识 , 系统输出最终结果;如果大家未达成共识 , 回到步骤 1 重新开始 。

\n

这种思路提供了一种可以达成共识的方法 , 但它离真正实现共识还很遥远 。 因为如果一台计算机连接不上系统 , 它就无法表决自己是否同意领导者的结果;如果出现问题的计算机恰好是领导者 , 情况就会更糟糕 , 整个系统会进入停滞状态 。

\n


三、同步性假设共识算法

\n

如何解决上述宕机的问题?方法说起来很简单:如果一台计算机连不上系统 , 就忽略它 , 不要它参与这一轮的共识 。

推荐阅读