【问题标题】:java code for producer/consumer not able to connect kafka in docker setup生产者/消费者的 java 代码无法在 docker setup 中连接 kafka
【发布时间】:2023-03-24 06:16:01
【问题描述】:

我已经为 kafka (wurstmeister/kafka-docker) 构建了一个 docker 镜像。在 docker 容器中,我可以使用内置的 shell 脚本创建主题、生成消息和使用消息。现在我正在使用https://github.com/mapr-demos/kafka-sample-programs 托管的代码从我的主机连接到 kafka 代理。构建并运行程序后,没有任何反应并且程序卡住了。我猜 producer.send 无法连接到 kafka 代理。任何帮助表示赞赏

【问题讨论】:

  • 为了检查是否是网络问题,您可以尝试 telnet 运行 zookeeper/brokers 的端口吗?为此:“telnet 2181”和“telnet 9092”。
  • @jose.goncabel 我可以从我的主机远程登录 zookeeper,但不能远程登录代理。如何纠正这种情况
  • 我想帮助你,但我以前没有使用 Docker 网络的经验,据我所知,你正面临网络问题。但是,我建议您重写您的问题,明确您的结构如何。 zookeeper、brokers、consumers 和 producer 在 docker 容器内或外部运行。

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


【解决方案1】:

您可以看到该项目中的consumer.propertiesproducer.properties 文件都指定了bootstrap.servers=localhost:9092

由于您无法使用localhost:9092 连接到dockerized kafka 服务,您可以尝试使用docker inspect kafka | grep IPA 等方式查找docker 容器的IP 地址(假设您的容器名称为kafka )。然后在这两个属性文件中将localhost 替换为该IP 地址。

【讨论】:

    【解决方案2】:

    我正在使用 ches/kafka 泊坞窗图像。看看KAFKA_ADVERTISED_HOST_NAME的解释。

    【讨论】:

      猜你喜欢
      • 2019-03-14
      • 2017-12-18
      • 2022-07-07
      • 2014-04-09
      • 2018-12-18
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多