你好,我是 mohamad,一名硕士生
我想问一个关于 Zookeeper 的问题。
我读到 zookeeper 中的写操作首先要完成,连接到客户端的服务器必须联系领导者,然后领导者进行投票,当他获得超过一半的服务器时,他回复服务器,这是连接到客户端以便继续执行此操作。
但我的问题是投票过程是为了什么?我的意思是他们投票给什么?
第二个问题是他们如何投票他们发送消息或者他们如何通知领导者。第三个问题是为什么他们需要投票,我读到有一个版本号以便检查更新数据所以他们为什么需要投票???
请任何人尽快回复我。
提前致谢
这是我能做到的最快速度。您需要阅读 Nancy Lynch 的《分布式算法》一书,以便更好地理解这些系统的工作原理。
背景 -
算法范式称为 Paxos,尽管 Zookeeper 有自己的实现,但有点不同。 Zookeeper 以两阶段提交的方式提交数据。所有通信都使用原子广播协议(protocol)通过 FIFO channel 进行以保持顺序。
什么是投票过程 - 投票过程是为了寻找领导者而不是为了两阶段提交。没有选票什么都没有。具有最高 zxid 的节点是领导者。
投票是为了领导选举。两阶段提交用于写操作。有关更多信息,请查看 zookeeper 文档和更重要的 dist algos 书,以了解为什么这些东西会以它们现在的方式运行:)。
--赛