我发现在 Kafka 0.72 中,我们可以指定 zk.connect 或 broker.list。但是在 Kafka 0.8 中,我们只能指定 broker.list ,不能指定 zk.connect 而不指定 broker.list。我认为,在这种情况下,我们无法通过 zookeeper 来平衡生产者。如果有人使用Kafka 0.8,或者对此有所了解?非常感谢!
问问题
2933 次
2 回答
3
您仍然可以使用 ZooKeeper 客户端来检索代理列表:
ZkClient zkClient = new ZkClient("localhost:2108", 4000, 6000, new BytesPushThroughSerializer());
List<String> brokerList = zkClient.getChildren("/brokers/ips");
据此,您不必在客户端“硬编码”代理列表,并且就系统架构而言,您是灵活的。但无论如何,这会再次添加 ZooKeeper 依赖项,这实际上对多个环境中的生产者来说是一个劣势。
如果您想详细了解所谓的“集群元数据 API”解决方案,请查看此链接:https ://issues.apache.org/jira/browse/KAFKA-369
最好的
预
于 2013-02-08T22:36:49.353 回答
0
在 Kafka 0.8 中,生产者通过新的集群元数据 API 进行负载平衡,并且为此目的使用 Zookeeper 已被删除。
于 2013-01-07T08:25:28.323 回答