如何解决"领导者不可用"尝试消费

时间:2016-02-03 21:20:11

标签: apache-kafka apache-zookeeper kafkacat

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

我根据Apache Kafka Quickstart Guide

启动了一个简单的服务器
$ 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)

我的问题:

  1. 这是我运行的zookeeper和/或kafkacat实例的问题 - 我问这是因为在删除/tmp/zookeeper/tmp/kafka-logs后,我一直在关闭它们并重新启动它们目录
  2. 我需要尝试一些简单的设置吗?我尝试在Kafka的auto.leader.rebalance.enable=true设置文件中添加server.properties,但这并未修复此特定问题
  3. 如何重新启动zookeeper / kafka。关闭它们,删除/tmp/zookeeper/tmp/kafka-logs目录,然后重新启动zookeeper,然后再开始kafka? (好吧,也许要走的路是建立一个我可以站起来拆卸的码头工人容器,我打算使用spotify/docker-kafka容器,但这不是在Kafka 0.9.0.0而且我没有'花时间建立我自己的)

1 个答案:

答案 0 :(得分:3)

  1. 可能是,但可能不是。我的猜测是主题没有创建,所以kafkacat在屏幕上回应按摩,但并没有真正发送给kafka。删除/ tmp / kafka-logs
  2. 后,可能会删除所有主题
  3. 否。我不认为这是寻找解决方案的方法。
  4. 拥有一个docker容器肯定是要走的路 - 你很快就会在多个代理上运行kafka,检查复制行为,高可用性场景等等。让它停靠有很多帮助。