在kafka0.8producer中,如果不指定broker.list,就不能指定zk.connect

7kjnsjlb  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(255)

我发现在kafka0.72中,我们可以指定zk.connect或broker.list。但是在kafka0.8中,我们只能指定broker.list,如果不指定broker.list,就不能指定zk.connect。我认为,在这种情况下,我们不能通过Zookeeper来平衡生产者。如果有人使用Kafka0.8,或者对此有所了解?非常感谢!

vc6uscn9

vc6uscn91#

您仍然可以使用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
最好的
之前

hfyxw5xn

hfyxw5xn2#

在kafka0.8中,生产者通过新的集群元数据api进行负载平衡,而zookeeper的使用已经被删除。

相关问题