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