【问题标题】:Leader brokers without a matching listener error in kafka领导者经纪人在 kafka 中没有匹配的侦听器错误
【发布时间】:2019-01-28 16:14:49
【问题描述】:

这个kafka错误是什么意思?

[2018-08-22 11:40:49,429] 警告 [消费者 clientId=consumer-1, groupId=console-consumer-62114] 1 个分区有领导代理 没有匹配的监听器,包括 [topicname-0] (org.apache.kafka.clients.NetworkClient)

我在运行时得到它:

./kafka-console-consumer.sh --topic topicname --bootstrap-server localhost:9094

当我尝试阅读此主题时,我在 golang 程序中遇到了一些错误:

2018/08/22 11:44:12 ReadOffsetWithRetryOnError 连接错误: kafka0:9094 主题:0

代码sn-p:

conn, err := kafka.DialLeader(context.Background(), "tcp", ip, getTopic(topic), 0)
                if err != nil {
                    log.Println("ReadOffsetWithRetryOnError conn error: <", err, "> ", ip, " topic:", topic)
                }

这很奇怪,因为在阅读不同主题时,它同时工作正常。

更多错误日志:

/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topicname 主题:indexBlock PartitionCount:1
ReplicationFactor:1 配置: 主题:topicname 分区:0 领导者:-1 副本:1002 Isr:1002

【问题讨论】:

标签: go apache-kafka kafka-consumer-api


【解决方案1】:

我认为我的问题是我正在运行 2 个实例,而没有为复制设置任何特殊内容。 (可能没有复制?)然后我删除了一个代理。一些主题停止工作。

【讨论】:

  • 我们遇到了同样的问题,启动了所有的代理,问题就解决了。
【解决方案2】:

[2018-08-22 11:40:49,429] WARN [Consumer clientId=consumer-1, groupId=console-consumer-62114] 1 个分区具有没有匹配侦听器的领导代理,包括 [topicname-0] (org .apache.kafka.clients.NetworkClient)

如果您尝试运行多个消费者并且 kafka 主题仅包含一个分区,也会发生此错误。通常一个消费者应该映射到一个分区。如果您使用两个消费者,那么您应该在 kafka 主题中有 2 个分区。

【讨论】:

  • 小修正:如果你尝试运行来自同一个消费者组的多个消费者。
【解决方案3】:

就我而言,我在测试Kafka 故障转移时遇到了这个错误。我删除了 1 Kafka,并希望将消息写入 other Kafka

问题是主题 replication-factor 设置为 1,而我需要将其设置为 2。(2 个 Kafka 实例)

奖励
查看为 Kafka 和您创建主题的目录(在我的例子中:kafka-logs-xx)会明白为什么:-)

【讨论】:

    【解决方案4】:

    就我而言,我在将我的 kafka 集群从 v2.0 更新到 v2.4 时遇到了这个错误。原因是 server.properties 文件中 log.dirs 的配置设置错误。因为我没有注意到不同节点的磁盘名称不同,并且我在 log.dirs 设置中的磁盘名称不匹配。

    【讨论】:

      【解决方案5】:

      我遇到了这个问题,我通过创建一个新的代理并启动它来解决它。之后你必须重启不同的消费者、生产者等等。

      【讨论】:

        【解决方案6】:

        jumping_monkey 检查目录的奖励很有帮助。对我来说,我使用Bitnami Kafka 进行部署。在第一次部署时,我不在掌舵值中config。我想将保留时间更改为分钟,并设置:

        config: |-
          log.retention.minutes=10
        

        这导致log.dirs 目录从/bitnami/kafka/data 切换到/tmp/logs

        本质上是数据存储在 Kafka 代理上的位置导致错误出现。

        【讨论】:

          【解决方案7】:

          我在 docker 容器中运行 Kafka 时遇到了这个问题。

          以下解决方案有助于解决该问题。

          正如@coldkreap 在此答案的评论中提到的那样:https://stackoverflow.com/a/58067985/327862

          kafka 代理信息在重新启动之间保留,因为 wurstmeister/kafka 图像创建一个名为“kafka”的卷。如果你跑 docker volume ls 你会看到一个 kafka 卷。删除该卷并 您将能够重新创建主题等。

          如果使用docker-compose,您可以运行以下命令来删除容器及其关联的卷:

          docker-compose down -v
          

          docker-compose rm -sv
          

          【讨论】:

            猜你喜欢
            • 2019-07-21
            • 2020-11-11
            • 1970-01-01
            • 2019-05-03
            • 1970-01-01
            • 2021-02-12
            • 2023-02-15
            • 1970-01-01
            • 2021-12-01
            相关资源
            最近更新 更多