Kafka群集设置

时间:2018-10-25 15:47:33

标签: amazon-ec2 apache-kafka apache-zookeeper

我是Kafka技术的新手。 我已经使用Ambari设置了基本的单节点群集。

我想了解生产服务器的推荐配置。假设在生产中,我将有5个主题,每个主题每天的访问量在500,000到50,000,000之间。

我正在考虑使用EC2 r5.xlarge实例设置一个3-4节点的kafka集群。

我对动物园管理员部分大为困惑。我知道zookeeper需要奇数个节点,并且zookeeper已安装在所有kafka节点上,那么我如何在偶数个节点上运行Kafka。如果这是真的,那么会将Kafka的节点数也限制为奇数。

真的需要在所有Kafka节点上安装Zookeeper吗?我可以在单独的节点上安装Zookeeper并在单独的节点上安装Kafka代理吗?

如果我想运行多个Kafka集群怎么办。是否可以通过单个Zookeeper集群管理多个Kafka集群,如果可能的话,怎么办?

我只是最近才开始学习Kafka,我们将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:2)

  

我可以在单独的节点上安装Zookeeper并在单独的节点上安装Kafka代理吗?

可以,如果有可用资源,则应该这样做。


在奇数台服务器上运行zookeeper-server-start zookeeper.properties。 (较大的Kafka群集最多5或7)

在作为Kafka代理的其他每台计算机上,与Zookeeper不在同一台服务器上,编辑server.properties以指向zookeeeper.connect属性的那组Zookeeper计算机地址。

然后对每个新的Kafka经纪人执行kafka-server-start server.properties

从那里,您可以独立于Zookeeper扩展Kafka

  

是否可以通过单个Zookeeper集群管理多个Kafka集群

查找Zookeeper chroots

一个Kafka集群将定义为

zoo1:2181/kafka1

再说一遍

zoo1:2181/kafka2

如果机器不应该在同一个Kafka集群中,请小心不要混淆它们


您可以找到各种CloudFormation,Terraform或Ansible仓库,用于在Github上的Cloud中以分布式方式设置Kafka,或者如果您熟悉的话,可以选择Kubernetes。

答案 1 :(得分:2)

  

我对动物园管理员部分大为困惑。我了解动物园管理员   需要奇数个节点,并且所有kafka上都安装了zookeeper   节点,那么我该如何在偶数个节点上运行Kafka。如果这是   确实,它将Kafka也限制为奇数个节点。

Zookeeper可以但不必与kafka安装在同一服务器上。不需要在奇数个节点上运行zookeeper,只是一个很好的建议

  

真的需要在所有Kafka节点上安装Zookeeper吗?我可以吗   在单独的节点上安装Zookeeper,在单独的节点上安装Kafka代理   节点,如何?

这不是必需的,最好不要在同一服务器上安装zookeeper和kafka。在另一台服务器上安装zookeeper与它们驻留在同一台服务器上非常相似。每个kafka经纪人都需要具有指向所有Zookeeper节点的zookeeper.connect设置。

  

如果我想运行多个Kafka集群怎么办。是否有可能   通过单个Zookeeper集群管理多个Kafka集群,如何   如果可能的话?

有可能。在这种情况下,建议将服务器专门用于动物园管理员合奏。在这种情况下,在zookeeper.connect设置中,您应该使用hostname:port / path而不是hostname:port。