【问题标题】:Kafka Leader Error卡夫卡领导者错误
【发布时间】:2015-11-01 02:19:32
【问题描述】:

我在三台 EC2 机器(server-1、server-2、server-3)上有一个 kafka 集群,并且 zookeeper 在 server-1 上运行。 server-1 的代理 id 为 11,12,13,server-2 的代理 id 为 21,22,23,server-3 的代理 id 为 31,32,33。 尝试通过 kafka 控制台生产者(在 server-1 上)向名为 test4 的主题发送消息时,出现以下错误:

WARN [KafkaApi-11] Produce request with correlation id 2 from client
console-producer on partition [test4,0] failed due to Leader not local
for partition [test4,0] on broker 11 (kafka.server.KafkaApis)

描述主题命令的输出是:

Topic: test4    Partition: 0    Leader: 21  Replicas: 21    Isr: 21
Topic: test4    Partition: 1    Leader: 22  Replicas: 22    Isr: 22
Topic: test4    Partition: 2    Leader: 23  Replicas: 23    Isr: 23

这个错误的原因可能是什么?

【问题讨论】:

    标签: apache-kafka apache-zookeeper


    【解决方案1】:

    您似乎正在向代理 11 发送消息,但您应该将它们发送给代理 21,因为该代理是主题 test4 分区 0 的领导者。您究竟是如何生成/发送这些消息的?可以分享一下命令吗?您是否有可能以某种方式明确指定经纪人 11 ?

    只是出于好奇:为什么在一台服务器上拥有三个 Kafka 代理? (如果我理解正确的话。)

    【讨论】:

    • bin/kafka-console-producer.sh --broker-list server-1:9092,server-1:9093,server-1:9094,server-2:9092,server-2: 9093,server-2:9094,server-3:9092,server-3:9093,server-3:9094 --topic test4
    • 现在我只是在测试它,所以指定了 3 个经纪人。我计划将来将其更改为每台机器一个代理
    • 嗯,我认为应该可以。这意味着这是一个愚蠢的错误:-)。你不可能在localhost:9092主机名或类似的东西上启动你的Kafka经纪人吗?您对经纪人的host.name 配置是什么?也许 Kafka 返回了 localhost:9092 而不是 server-2:9092,当你在 server-1 上解析 localhost 时,你显然不会得到 server-2
    • 还要查看您的状态更改和控制器日志。
    猜你喜欢
    • 2021-02-12
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2016-09-06
    • 2017-02-21
    • 2019-07-03
    • 2018-05-05
    相关资源
    最近更新 更多