在kafka 0.8 producer中,我们不能指定zk.connect而不指定broker.list

时间:2013-01-07 05:14:51

标签: broker producer apache-kafka

我发现在Kafka 0.72中,我们可以指定zk.connect或broker.list。但是在Kafka 0.8中,我们只能指定broker.list,并且我们不能指定zk.connect而不指定broker.list。我想,在这种情况下,我们无法通过zookeeper平衡生产者。如果有人使用Kafka 0.8,或对此有所了解?非常感谢!

1 个答案:

答案 0 :(得分: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

最佳