问答题【238/1053】ZooKeeper 集群最少要几台机器,集群规则是怎样的?
最少机器数
- 最少需要 3 台机器,因为 ZooKeeper 集群是基于 多数节点机制(Quorum)来确保一致性的。
- 在分布式系统中,ZooKeeper 使用一个 N节点 集群(通常为奇数节点),为了保证容错性并维持数据一致性,集群中的大多数节点必须就事务达成一致。
集群规则
-
多数节点机制(Quorum):
- 集群需要 大多数节点 参与投票才能提交一个事务。例如,在 3 个节点的集群中,至少 2 个节点需要一致才能提交一个写操作。
- 如果集群中的节点数为 N,那么至少需要 (N / 2 + 1) 个节点同意才能保证事务的提交。
-
Leader 和 Follower:
- ZooKeeper 集群采用 Leader-Follower 模式,Leader 负责处理写请求,Follower 负责处理读请求并同步数据。
- Leader 节点是通过 ZAB 协议(ZooKeeper Atomic Broadcast)选举出来的,所有的写操作必须由 Leader 节点处理,写操作会广播给所有 Follower 节点。
-
集群节点数为奇数:
- 集群节点数通常建议为奇数(如 3、5、7 等),这样可以避免出现平票的情况,确保能够形成多数决策。
- 例如,3 节点集群中,2 个节点需要达成共识,5 节点集群中,3 个节点需要达成共识。
-
容错性:
- ZooKeeper 集群容忍 N-1 节点故障,其中 N 为集群节点总数。例如,3 个节点的集群可以容忍 1 个节点宕机,5 个节点的集群可以容忍 2 个节点宕机。
-
数据同步与一致性:
- Leader 会向所有 Follower 广播数据更新,所有节点通过写入日志文件保证数据同步。
- 在故障恢复后,Follwer 节点会从 Leader 获取最新的数据状态。
最近更新时间:2024-12-06