ZooKeeper 集群运行机制

运行机制

ZooKeeper 集群运行机制

  • ZooKeeper 集群安装时所有 zk 节点不分主/从节点
  • ZooKeeper 集群运行时会选举一个节点作为主节点( Leader ),其他节点作为从节点( Follower )
  • ZooKeeper 集群中只有主节点(Leader) 对外提供服务,从节点(Follower)仅作为备份节点

选举投票机制

投票规则:所有 ZK 节点中获得投票数超过 ZK 集群节点半数以上则为 Leader,其他节点为 Follower

ZooKeeper 集群运行机制

  • ZK1 启动后 QuorumPeerMain 进程会向 ZK 集群进行组播投票,发现只有自己,只能投自己
  • ZK2 启动后 QuorumPeerMain 进程会向 ZK 集群进行组播投票,发现自己的 myid 更大,投自己
  • 目前 ZK1 和 ZK2 各自获得 1 票无法胜出,需要进行新一轮投票
  • 新一轮投票中,ZK1 的 myid 更小这次会投票给 ZK2,ZK2 自然也投票给自己,这样 ZK2 获得 2
  • ZK 集群一共 3 个 ZK 节点, ZK2 获得 2 票,超过半数以上投票,所以 ZK2 获胜成为 Leader,这时 ZK3 启动发现集群 ZK 节点已经有 Leader,则自动变成 Follower

ZooKeeper 高可靠、高可用

  • ZooKeeper 集群节点初始配置应该为奇数
  • 只要 ZooKeeper 集群中宕机的节点数小于半数,ZooKeeper 集群就可以正常对外提供服务
上一篇:zookeeper的详细介绍及使用场景


下一篇:利用脚本批量操作ZooKeeper