gpt4 book ai didi

apache-kafka - 消费者控制台中的引导服务器与动物园管理员参数

转载 作者:行者123 更新时间:2023-12-01 13:17:05 26 4
gpt4 key购买 nike

I have read thread boostrap-server vs zookeeper in consumer console but that's not clear my doubt.



我的疑问是,假设我们在 localhost:2181 上运行了 Zookeeper,三个代理服务器在 localhost:9092、localhost:9093、localhost:9094 上运行,我们有一个主题 my_topic,分区 3 和复制 1,主题由代理共享因为它有三个分区。

在新版本的 Apache-Kafka 中,当我们运行消费者控制台时,我们需要通过 --bootstrap-server localhost:9092这是其中之一
代理地址,但在早期版本中,我们传递的是 zookeeper 地址。

所以当我们运行消费者来消费来自主题 my_topic 的消息时, 我们正在传递参数 --bootstrap-server localhost:9092这只不过是代理地址之一,所以我的问题是,我们是否限制消费者,您必须仅使用来自该代理的消息,如果不是,那么假设该代理本身已关闭,那么消费者将如何读取消息从那个话题。我不明白它是如何工作的,请有人清除它。

运行消费者的旧版本命令(< 1.0)
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from- beginning --topic my_topic
运行消费者的较新版本命令(> = 1.0) bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my_topic

最佳答案

在之前的 Kafka 版本(0.9.0 之前)中,消费者需要连接到 Zookeeper 来提交偏移量和获取主题元数据。
从 0.9.0 开始,消费者偏移量保存在 Kafka 主题(__consumer_offset)中,不再需要与 Zookeeper 的连接。

您在 --bootstrap-server 中指定的内容参数正是名称 .. 所说的。这是一个引导服务器列表:这意味着消费者连接到您指定的代理并询问有关它想要使用的主题的元数据。它不仅限于仅使用来自 --bootstrap-server 中列出的代理的消息。范围。
假设您指定“kafka1:9092”作为引导服务器(在您所说的有 3 个代理的集群中)。连接后,消费者发送元数据请求以获取有关“my_topic”的信息。 “kafka1”服务器可以回复“我不是 my_topic 分区 0 的领导者,这里是该 kafka2 的领导者的代理”。此时,消费者连接到“kafka2”代理开始获取消息。

关于apache-kafka - 消费者控制台中的引导服务器与动物园管理员参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53954877/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com