【问题标题】:Running kafka-console-producer.sh to another server将 kafka-console-producer.sh 运行到另一台服务器
【发布时间】:2019-09-12 23:38:46
【问题描述】:

我已经在我的 centos 服务器上安装了 Apache Kafka。我只是想向另一台服务器上的主题写一条消息。所以安装后,我并没有启动zookeeper或Kafka服务器,而是简单地输入命令:

echo testing | ./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx

我可以从我的服务器 ping xxx.yyy.com。当我运行它时,我得到了这个错误:

向主题 cds_organization 发送消息时出错,键:null,值:7 字节,错误:
(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException:60000 毫秒后元数据中不存在主题 topicx。

那么在这种情况下,我还需要启动 zookeeper 和/或 kafka 服务器吗?

【问题讨论】:

  • "./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx" 你试过不带“echo”单独运行这个命令吗
  • 结果和以前一样
  • 请使用 kafka-topics.sh 命令检查主题是否存在。 ./kakfa-topics.sh --zookeeper host:port --list
  • 另外请检查代理配置中 auto.create.topis.enable 是否设置为 true 或 false
  • 当我使用 host:port 运行 kafka-topics.sh 时,会出现该主题。我启用了 auto.create.topics.enable=true,但没有任何区别。

标签: apache-kafka kafka-producer-api


【解决方案1】:

"./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx",你的逗号,错过了这部分,你的broker在监听吗端口 2181,通常是 9092。
将逗号改为“./kafka-console-producer.sh --broker-list xxx.yyy.com:9092 --topic topicx”,然后重试

【讨论】:

  • 是的,它正在监听 2181,当我使用 2181 运行 kafka-topics 时,它会显示主题:./kafka-topics.sh --describe --topic topicx --zookeeper xxx.yyy .com:2181 输出为:主题:topicx PartitionCount:1 ReplicationFactor:1 配置:主题:topicx 分区:0 领导者:1 副本:1 Isr:1
  • @hamayoun 否...kafka-topics 使用--zookeeper。此不是需要通过--broker-list 列出的代理。理想情况下,它们是完全不同的机器。
【解决方案2】:

我没有启动 zookeeper 或 Kafka 服务器,只是输入了命令:

如果两者都没有运行,那么您列出的任何命令都不应该工作。

我还需要启动 zookeeper 和/或 kafka 服务器吗

是的,您需要两者都在运行,但不需要在同一台机器上。


如前所述,Kafka 的默认端口是 9092。Zookeeper 是 2181。看来你混合了它们。

描述主题 (kafka-topics) 命令仅通过 Zookeeper (up until Kafka 2.2) 完成。

要生产,您应该使用 Kafka 主机和端口(从 Kafka 0.9 开始)。

【讨论】:

  • 我已经在我的服务器上同时启动了 zookeeper 和 kafka。当我尝试运行“echo testing | ./kafka-console-producer.sh --broker-list xxx.yyy.com:2181 --topic topicx”时的结果仍然相同,即使我将端口更改为 9092
  • xxx.yyy.com:9092 正在运行 Kafka 吗? Kafka的advertised.listeners属性是否正确建立?
【解决方案3】:

我终于得到了这个工作。问题是具有我试图写入的主题的 Kafka 服务器的版本为 0.8.2.1,并且我安装了最新版本。当我安装相同版本时,kafka-console-producer.sh 运行良好,无需启动 zookeeper 或本地 Kafka 服务器。

【讨论】:

    【解决方案4】:

    我已经为我的 Springboot 应用程序解决了这个问题,方法是添加一个单独的 spring-kafka 依赖项,其版本与 kafka 服务器版本匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-02
      • 2016-08-27
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 2020-11-26
      • 2016-10-18
      • 2019-01-24
      相关资源
      最近更新 更多