zookeeper

2022/02/21 DistributedSystem 共 443 字,约 2 分钟

zookeeper

了解zk: 参考

zk有序树形节点实现分布式锁: 参考

  • Kafka 选举就用的这个。leader选举。

paxos执行过程: 参考

zk基于zab协议,是个paxos的变种。

zk的所有副本都可以提供读服务,与此相对应的,只有主节点可以提供写服务。

选举原则:数据最新or ID最大的节点作为主。

QA

zk会脑裂吗

不会脑裂。默认 只有获得超过半数节点的投票, 才能选举出leader. 因此只会有一个leader存在。可能会有部分节点没有follow leader。这些节点已经挂了。

zk or ZAB为何是最终一致性而不是强一致性

参考

  • 写是强一致性,单领导者模型,写需要majority保证(写节点超过一半),脑裂情况下也可以写强一致
  • 读两种接口,1:读单个机器的,2:只读主的。如果是后者就是强一致性的。
  • etcd做了读的优化,读时也需要majority,需要大伙同意认为它是主,但牺牲了效率。

这里的一致性是从读写方面,写一致性,都写成功,读一致性,从提供的读接口任意时刻咋读都一样。和事务一致性不太一样。

Search

    Table of Contents