如何在同一个L2网络上创建多个Kafka集群?

时间:2016-09-07 11:40:20

标签: java apache-kafka apache-zookeeper

我在同一个L2网络上有12个Kafka节点。

我想在同一个L2网络上创建4个Kafka集群(每个集群有3个节点)。

是否可以这样做以及如何做? 如果没有,那么解决方法是什么?

1 个答案:

答案 0 :(得分:2)

Kafka集群基本上由其成员使用的Zookeeper数据模型定义。因此,如果您希望某些代理属于给定的集群,则必须使它们指向同一个Zookeeper名称空间。实际上,如果你想拥有4个集群,那么你需要在Zookeeper集合中使用4个不同的chroots,并使每个集群使用不同的集群。例如,集群A的集群将使用zookeeper.connect = 127.0.0.1:2181 / cluster / a,集群B的成员将使用zookeeper.connect = 127.0.0.1:2181 / cluster / b等。当然,另一种方法是为每个群集使用完全独立的Zookeeper集合。

来自ZooKeeper Programmer's Guide

  

一个可选的" chroot"后缀也可以附加到连接   串。这将在解释所有路径时运行客户端命令   相对于此根(类似于unix chroot命令)。如果使用   示例如下所示:" 127.0.0.1:4545 / app / a"要么   " 127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002 /应用/ A"客户在哪里   将根植于" / app / a"并且所有路径都与此相关   root - 即获取/设置/ etc ..." / foo / bar"会导致运营   正在" / app / a / foo / bar" (从服务器的角度来看)。这个   功能在多租户环境中特别有用   特定ZooKeeper服务的用户可以使用不同的root。   这使得重用变得更加简单,因为每个用户都可以对他/她进行编码   应用程序好像它是根据" /",而实际位置(比如说   / app / a)可以在部署时确定。