【问题标题】:Kafka bootstrap-servers vs zookeeper in kafka-console-consumerkafka-console-consumer 中的 Kafka bootstrap-servers 与 zookeeper
【发布时间】:2017-06-06 01:54:42
【问题描述】:

我正在尝试使用 3 个代理和 Zookeeper 测试运行单个 Kafka 节点。我希望使用控制台工具进行测试。我这样运行生产者:

kafka-console-producer --broker-list localhost:9092,localhost:9093,localhost:9094 --topic testTopic

然后我这样运行消费者:

kafka-console-consumer --zookeeper localhost:2181 --topic testTopic --from-beginning

我可以在生产者中输入消息并在消费者中看到它们,正如预期的那样。 但是,当我使用 bootstrap-server 运行消费者的更新版本时,我什么也得不到。例如

kafka-console-consumer --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --topic testTopic --from-beginning

当我在端口 9092 上运行一个代理时,这工作得很好,所以我完全糊涂了。有没有办法可以看到 zookeeper 作为引导服务器提供的内容?引导服务器与代理列表不同吗? Kafka 使用 Scala 2.11 编译。

【问题讨论】:

  • 我看到了同样的事情。甚至,在删除 log.dir 之后。但是,我不知道/brokers/topic在哪里

标签: apache-kafka kafka-consumer-api


【解决方案1】:

我在使用不匹配的版本时遇到了同样的问题:

  • Kafka 客户端库
  • Kafka 脚本
  • Kafka 经纪人

在我的确切场景中,我使用的是 Confluent Kafka 客户端库版本 0.10.2.1 和带有 Kafka 代理 0.11.0.0 的 Confluent Platform 3.3.0。当我将我的 Confluent 平台降级到与我的客户端库匹配的 3.3.2 时,消费者按预期工作。

我的理论是,使用新消费者 API 的最新 kafka-console-consumer 仅使用最新格式检索消息。 Kafka 0.11.0.0 中引入了许多消息格式更改。

【讨论】:

    【解决方案2】:

    我不知道出了什么问题。很可能我让 Kafka 或 Zookeeper 处于一种奇怪的状态。删除每个代理的log.dir 中的主题和/brokers/topics 中的zookeeper 主题然后重新创建主题后,Kafka 消费者的行为符合预期。

    【讨论】:

    • /broker/topics 在哪里?
    • 我用 zookeeper-shell 找到它,然后发出命令:rmr /brokers/topics/TOPIC_NAME 你可以在 zookeeper-shell 中输入帮助来查看命令。另请参阅:stackoverflow.com/questions/43073955/…
    【解决方案3】:

    引导服务器与 kafka 代理相同。如果你想查看zookeeper提供的引导服务器列表,你可以通过任何ZK客户端查询ZNode信息。所有活跃的经纪人都在 /brokers/ids/[brokerId] 下注册。您只需要 zkQuorum 地址。下面的命令会给你 活动引导服务器列表:

    ./zookeeper-shell.sh localhost:2181

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2016-06-06
      • 1970-01-01
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多