庞大的kafka集群需要多少zookeeper服务器

问题描述

我们在集群中构建了 18 台 kafka 机器,kafka 版本为 1.0,在 linux 机器上

目前我们有 3 个 zookeeper 服务器,但我们不知道 3 个 zookeeper 服务器是否足以容纳 18 台 Kafka 机器

请告知我们需要多少个 Zookeeper 服务器才能为 18 台 Kafka 机器提供服务?

解决方法

Zookeeper 节点的数量与集群中的代理数量没有直接关系。

3 个 Zookeeper 节点应该就足够了,不过最好了解一下这里的权衡:

ZooKeeper 使用多数法定人数,这意味着每次投票 发生在这些协议之一需要多数票才能通过。

Source - Zookeeper Quorums

在生产环境中,ZooKeeper 服务器将部署在 多个节点。这称为合奏。一个集合是一组 2n + 1 ZooKeeper 服务器,其中 n 是任何大于 0 的数字。服务器的奇数数量允许 ZooKeeper 执行多数选举 领导力。

Source - Confluent ZooKeeper Multi-node Setup

因此,您可以在独立模式下使用单个节点 ZK,但您将根本没有容错
使用 3 个节点 集成,将使您失去一个单个节点,但仍能正常运行。
使用 5 个节点 集成,将使您失去 2 个节点,但仍能正常运行。
使用 7 个节点 集成,将使您失去 3 个节点,但仍能正常运行。