我正在尝试使用Kafka控制台生成器向在同一台计算机上运行的Kafka代理发送消息。我跑的时候
echo "Hello world" | ./kafka-console-producer.sh --broker-list localhost:9092 --topic test
我收到以下错误消息:
[2016-06-29 15:00:44,069] ERROR Error when sending message to topic test with key: null, value: 11 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Batch containing 1 record(s) expired due to timeout while requesting metadata from brokers for test-0
当我检查Kafka代理是否正在侦听端口9092时,它就在那里并且正在运行。如何调试为什么命令行生产者不能连接到代理?谢谢!
答案 0 :(得分:1)
我遇到了同样的问题,似乎Kafka向zookeeper写了错误的元数据。
传递此方法的最简单方法是删除正在注册代理数据的znode。即如果使用默认值,则名称应为“/ brokers”,命令为:
$ zkCli.sh
...
[zk: localhost:2181(CONNECTED) 1] rmr /brokers