仅使用两台服务器构建Kafka集群

时间:2020-02-27 18:32:21

标签: apache-kafka apache-zookeeper

我计划使用两台服务器构建一个Kafka集群,并在这两台服务器上同时托管Zookeeper。

问题是,由于Kafka需要运行Zookeeper,对于Zookeeper在两台服务器上实现Kafka Cluster的最佳集群构建是什么?

例如我目前在两台服务器上都运行两个Zookeeper,每台服务器上都运行一个Kafka,在Kafka配置中,它们指向所有Zookeeper。

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

首先,您不必在同一服务器上设置Zookeper和Kafka。 Zookeeper的角色之一是选举控制器。 (负责维护所有分区的领导者/从属者关系的经纪人之一)选举; Zookeper的大多数节点必须处于活动状态。在您的情况下,即使只有一个Zookeeper实例已关闭,也无法选择控制器。因此,拥有一个或两个Zookeper并没有区别。因此,建议在Zookeeper群集中至少有3个节点。这样,您可以处理一个Zookeeper节点的故障。

此外,强烈建议您在Kafka集群中至少有三个代理,以保持一致性和高可用性。 (link1link2

更新:

只要限于两台服务器,就可以考虑通过设置min.insync.replicas=2并使用replication.factor=2设置主题来设置代理,以牺牲高可用性。如果HA比数据丢失更重要,则可以将min.insync.replicas=1(默认)代理配置与主题replication.factor=2一起使用。在这种情况下,您可以选择这些恕我直言。 (如上所述,拥有一两个动物园管理员并不重要)

相关问题