问答题238/1053ZooKeeper 集群最少要几台机器,集群规则是怎样的?

难度:
2021-11-02 创建

参考答案:

最少机器数

  • 最少需要 3 台机器,因为 ZooKeeper 集群是基于 多数节点机制(Quorum)来确保一致性的。
  • 在分布式系统中,ZooKeeper 使用一个 N节点 集群(通常为奇数节点),为了保证容错性并维持数据一致性,集群中的大多数节点必须就事务达成一致。

集群规则

  1. 多数节点机制(Quorum)

    • 集群需要 大多数节点 参与投票才能提交一个事务。例如,在 3 个节点的集群中,至少 2 个节点需要一致才能提交一个写操作。
    • 如果集群中的节点数为 N,那么至少需要 (N / 2 + 1) 个节点同意才能保证事务的提交。
  2. Leader 和 Follower

    • ZooKeeper 集群采用 Leader-Follower 模式,Leader 负责处理写请求,Follower 负责处理读请求并同步数据。
    • Leader 节点是通过 ZAB 协议(ZooKeeper Atomic Broadcast)选举出来的,所有的写操作必须由 Leader 节点处理,写操作会广播给所有 Follower 节点。
  3. 集群节点数为奇数

    • 集群节点数通常建议为奇数(如 3、5、7 等),这样可以避免出现平票的情况,确保能够形成多数决策。
    • 例如,3 节点集群中,2 个节点需要达成共识,5 节点集群中,3 个节点需要达成共识。
  4. 容错性

    • ZooKeeper 集群容忍 N-1 节点故障,其中 N 为集群节点总数。例如,3 个节点的集群可以容忍 1 个节点宕机,5 个节点的集群可以容忍 2 个节点宕机。
  5. 数据同步与一致性

    • Leader 会向所有 Follower 广播数据更新,所有节点通过写入日志文件保证数据同步。
    • 在故障恢复后,Follwer 节点会从 Leader 获取最新的数据状态。

最近更新时间:2024-12-06