我发现在Kafka 0.72中,我们可以指定zk.connect或broker.list。但在Kafka 0.8中,我们只能指定broker.list,不指定broker.list就不能指定zk.connect。我认为,在这种情况下,我们无法通过zookeeper来平衡生产者。如果有人使用Kafka 0.8,或者对此有一些了解?非常感谢!
最佳答案
您仍然可以使用 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
最佳
预
关于broker - 在kafka 0.8 Producer中,我们不能在不指定broker.list的情况下指定zk.connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14190263/