我在我的centos服务器上安装了Apache Kafka。我只是想在另一台服务器上写一个主题的消息。所以在安装之后,我没有启动zookeeper或Kafka服务器,只需输入命令:
echo testing | ./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx
我可以从我的服务器ping xxx.yyy.com。当我运行它时,我收到此错误:
ERROR使用key发送消息到主题cds_organization时出错:null,值:7个字节,带错误: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException:60000 ms后元数据中不存在主题topicx。
所以在这种情况下,我还需要启动zookeeper和/或kafka服务器吗?
“./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx”,你的同志,错过了这部分,是你的经纪人在PORT 2181上听,通常是9092。 更改commad为“./kafka-console-producer.sh --broker列表xxx.yyy.com:9092 --topic topicx”,然后再试一次
我没有启动zookeeper或Kafka服务器,只需输入命令:
如果两者都没有运行,那么您列出的命令不应该起作用。
我还需要启动zookeeper和/或kafka服务器吗?
是的,你需要两个都运行,但不需要在同一台机器上。
如上所述,Kafka的默认端口是9092. Zookeeper是2181.看起来你已经把它们混合了。
描述主题(kafka-topics
)命令仅通过Zookeeper(up until Kafka 2.2)完成。
要生产,你应该使用Kafka主机和端口(截至Kafka 0.9)。
我终于搞定了这个。问题是,我试图写的主题的Kafka服务器是0.8.2.1版,我安装了最新版本。当我安装相同的版本时,kafka-console-producer.sh工作正常,无需启动zookeeper或本地Kafka服务器。