首页 文章

如何在尝试使用时解决“Leader not available”Kafka 错误

提问于
浏览
4

我正在玩 Kafka 并使用我自己的本地单例 zookeeper kafka 并遇到这个错误,我似乎不明白如何解决。

我按Apache Kafka 快速入门指南启动了一个简单的服务器

$ bin/zookeeper-server-start.sh config/zookeeper.properties
$ bin/kafka-server-start.sh config/server.properties

然后利用kafkacat(通过 Homebrew 安装)我启动了一个 Producer,它只会回显我在控制台中键入的消息

$ kafkacat -P -b localhost:9092 -t TestTopic -T
test1
test1

但是当我尝试使用这些消息时,我收到一个错误:

$ kafkacat -C -b localhost:9092 -t TestTopic
% ERROR: Topic TestTopic error: Broker: Leader not available

同样,当我尝试列出其'元数据时

$ kafkacat -L -b localhost:9092 -t TestTopic
Metadata for TestTopic (from broker -1: localhost:9092/bootstrap):
 0 brokers:
 1 topics:
  topic "TestTopic" with 0 partitions: Broker: Leader not available (try again)

我的问题:

  • 这是我运行的 zookeeper and/or kafkacat 实例的问题 - 我问这是因为我在删除/tmp/zookeeper/tmp/kafka-logs目录后一直关闭它们并重新启动它们

  • 我需要尝试一些简单的设置吗?我尝试在 Kafka 的server.properties设置文件中添加auto.leader.rebalance.enable=true,但这并未解决此特定问题

  • 如何重新启动 zookeeper/kafka。是关闭它们,删除/tmp/zookeeper/tmp/kafka-logs目录,然后重新启动 zookeeper 然后 kafka 的方式去? (好吧可能的方法是建立一个我可以 stand-up 并拆除的 docker 容器,我打算使用spotify/docker-kafka容器,但这不是 Kafka 0.9.0.0 而我没有花时间构建我自己的容器)

1 回答

  • 3
    • 它可能是,但可能不是。我的猜测是主题没有创建,所以 kafkacat 在屏幕上回应按摩,但并没有真正发送给 kafka。删除/tmp/kafka-logs 后,可能删除了所有主题

    • 不,我认为这不是寻找解决方案的方法。

    • 拥有一个 docker 容器绝对是可行的方法 - 你很快就会在多个代理上运行 kafka,检查复制行为,高可用性方案等。让它进行 dockerised 有很大帮助。

相关问题