尝试消费时如何解决“Leader not available”卡夫卡错误

Jon*_*son 6 apache-kafka apache-zookeeper kafkacat

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

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

$ bin/zookeeper-server-start.sh config/zookeeper.properties
$ bin/kafka-server-start.sh config/server.properties
Run Code Online (Sandbox Code Playgroud)

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

$ kafkacat -P -b localhost:9092 -t TestTopic -T
test1
test1
Run Code Online (Sandbox Code Playgroud)

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

$ kafkacat -C -b localhost:9092 -t TestTopic
% ERROR: Topic TestTopic error: Broker: Leader not available
Run Code Online (Sandbox Code Playgroud)

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

$ 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)
Run Code Online (Sandbox Code Playgroud)

我的问题:

  1. 这是我正在运行的 zookeeper 和/或 kafkacat 实例的问题吗?我问这个是因为在删除/tmp/zookeeper/tmp/kafka-logs目录后,我一直在不断关闭它们并重新启动它们
  2. 是否有一些我需要尝试的简单设置?我尝试添加auto.leader.rebalance.enable=trueKafka 的server.properties设置文件,但这并没有解决这个特定问题
  3. 如何重新启动zookeeper/kafka。关闭它们,删除/tmp/zookeeper/tmp/kafka-logs目录,然后重新启动zookeeper,然后kafka 是要走的路吗?(好吧,也许要走的路是构建一个我可以站立和拆卸的 docker容器,我打算使用spotify/docker-kafka容器,但这不在 Kafka 0.9.0.0 上,我还没有使用是时候建立自己的了)

Jan*_*rek 5

  1. 可能是,但可能不是。我的猜测是该主题尚未创建,因此 kafkacat 会在屏幕上回响按摩,但并未真正将其发送给 kafka。删除 /tmp/kafka-logs 后可能所有主题都被删除
  2. 不,我不认为这是寻找解决方案的方式。
  3. 拥有一个 docker 容器绝对是一种可行的方式——你很快就会在多个代理上运行 kafka,检查复制行为、高可用性场景等。将它 dockerised 有很大帮助。