broker - 在kafka 0.8 Producer中,我们不能在不指定broker.list的情况下指定zk.connect

标签 broker producer apache-kafka

我发现在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/

相关文章:

timestamp - RabbitMQ 3.1.3 和丢失的时间戳头

python - Celery 任务未被处理

c - PThreads.消费者-生产者!打印在不同的文件中

Spring Kafka 异步发送调用 block

java - 线程“kafka-生产者-网络-线程”中未捕获的异常 |生产者1

java - Flink Kafka - 如何使应用程序并行运行?

python - celery 取消自己

java - Kafka 不会均匀地填充主题中的分区

java - 在 REST 端点中流式传输 Kafka 消息