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

\n

这之后出现的 DLS 算法、PBFT 算法(实用拜占庭容错算法)都是在此基础上发展出来的 。

\n

PBFT 是具有代表性的一种拜占庭容错算法 , 其实现过程大致如下 。 不理解该过程也没关系 , 知道通过这种沟通方式能够达成共识就可以 。

\n

pre-prepare 阶段:领导者发送结果给所有追随者 。 领导者在本图中是 0 号节点 , 它把结果发给追随者 1、2、3 号节点 。

\n

prepare 阶段:如果追随者认为结果没有错误 , 就告诉所有其他节点自己认可这个结果 。 比如 1 号节点会把自己的认可消息发给 0、2、3 号节点 。

\n

commit 阶段:如果追随者发现超过 2/3 的节点认可了领导者的结果 , 就告诉所有其他节点自己接受这个结果为最终结果 。

\n

reply 阶段:如果领导者和追随者发现超过 2/3 的节点接受了最终结果 , 就可以认为大部分节点达成了共识 , 就把该共识反馈给客户端;如果客户端收到超过 1/3 的节点的相同的共识 , 就可以认为全网达成了共识 。

推荐阅读