我是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,我们将不胜感激。
谢谢
答案 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。