分布式系统之Paxos选举协议
本来洋洋洒洒写了一大堆关于分布式存储系统的数据分布,复制节点,负载均衡,容错机制。但通读之后,感觉毫无章法,乱七八糟,不适合阅读。特别对于技术,我觉得还是要解释清楚,所以本文主要介绍分布式系统中的两个重要协议之一,Paxos选举协议,后续的再持续进展吧。提一下,另一个是:两阶段提交协议。
之所以最后选择先写协议的原因在于整个分布式系统中,理解了两个分布式协议之后,学习其他分布式协议会变得相当容易。
Paxos选举协议
先简单介绍:Paxos协议用于多个节点之间达成一致,往往用于实现总控节点选举。是一个基于消息传递的一致性算法。
Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算法,其它的算法都是Paxos的改进或简化。有个问题要提一下,Paxos有一个前提:没有拜占庭将军问题。就是说Paxos只有在一个可信的计算环境中才能成立,这个环境是不会被入侵所破坏的。
这里我们根据ZK来解释Paxos协议。
Paxos描述了这样一个场景