我在同一个L2网络上有12个Kafka节点。
我想在同一个L2网络上创建4个Kafka集群(每个集群有3个节点)。
是否可以这样做以及如何做? 如果没有,那么解决方法是什么?
答案 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)可以在部署时确定。