【问题标题】:Kafka broker is not available from localhost本地主机无法使用 Kafka 代理
【发布时间】:2019-05-17 17:32:34
【问题描述】:

我已安装 kafka_2.11-1.1.0 并将广告侦听器设置为 advertised.listeners=PLAINTEXT://<my-ip>:9092(在 $KAFKA_HOME/config/server.properties 中)。

我可以使用 java 代码连接并写入我的 kafka,并通过 kafka-tool 从另一台服务器查看我的集群,但我无法从本地机器(我在其上安装 kafka 集群的机器)向我的主题写入消息)。

我也尝试将 listeners 值设置为 listeners = PLAINTEXT://:9092,但没有任何变化。我应该如何处理我的 kafka 以使其在本地主机外部和内部都可访问和可写?

【问题讨论】:

  • “我无法从本地机器向我的主题写入消息”-> 您是否收到错误消息?你打算怎么写?
  • 我尝试编写一个类似于此处描述的示例的应用程序:dzone.com/articles/kafka-producer-and-consumer-example 我的意思是来自 java 代码。
  • 你能显示端口 9092 的 netstat 输出吗?再说一遍,您是否遇到了错误?
  • 我使用 telned 从这台服务器到它自己 (telnet localhost 9092),它告诉我 Trying 127.0.0.1... Connected to localhost.,按回车后它说 Connection to localhost closed by foreign host.。我应该用 netstat 做什么?

标签: apache-kafka kafka-consumer-api kafka-producer-api


【解决方案1】:

我终于通过将代码的org.apache.kafka 库从版本1.1.0 更改为版本2.1.0 解决了这个问题。

我提到所有这些库都是通过mvnrepository.com 导入(下载)和使用的。

另外,我们的 kafka 生产者和消费者代码模式是使用这篇文章编写的: https://dzone.com/articles/kafka-producer-and-consumer-example.

【讨论】:

  • 希望其他开发者,以后不要再有这样的问题了!!
  • 我不确定,但可能是因为当你升级你的 kafka 版本时,你可能也需要升级你的库版本。
【解决方案2】:

看看下面的链接,它可能对你的场景有帮助,

【讨论】:

  • 我的问题是内部连接而不是外部连接。当我设置我的 ip 或 localhost 或 127.0.0.1 时,kafka 客户端无法连接到我的 kafka 代理。
  • 那么,你检查过你系统的hosts文件吗? ip 或 locahost 或 127.0.0.1 是否可以通过 ping 访问?
  • 我再次检查了它们,它们都还活着并且可以访问。
【解决方案3】:

在 server.properties 中使用以下两个属性

listeners=PLAINTEXT://0.0.0.0:9092 
advertised.listeners=PLAINTEXT://<your ip>:9092

【讨论】:

  • 它没有帮助。我必须说我使用的是 solaris 10,而这个问题只发生在这台机器上。
  • 检查您的计算机是否位于阻止端口 9092 上的传入连接的防火墙后面。
  • 我 100% 确定我没有任何网络/防火墙问题。我一开始就坚持我可以从外部连接。
  • 0.0.0.0 有用
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 2019-11-11
  • 2016-10-15
  • 2015-06-11
  • 1970-01-01
  • 2020-02-14
相关资源
最近更新 更多