【问题标题】:Unable to access Kafka Docker container from outside through java basic app without updating /etc/hosts file在不更新 /etc/hosts 文件的情况下,无法通过 java 基本应用程序从外部访问 Kafka Docker 容器
【发布时间】:2017-11-16 10:07:54
【问题描述】:

设置: 1.Docker Kafka Container 正在运行 Kafka。 2.Java 基本应用程序,从 Kafka 容器外部生成和使用 Kafka 消息。

从容器外部,我尝试使用 java 脚本发送 Kafka 消息,并使用用 java 脚本编写的消费者使用这些消息。 如果我使用 Kafka 容器 IP 地址和主机名详细信息更新 etc/hosts 文件,这将起作用。 请提出解决方案以防止更新 etc/hosts 文件详细信息。 要求:应该更新 etc/hosts 文件,我们如何从外部访问 Kafka 容器。

【问题讨论】:

  • 你必须至少分享 docker 镜像细节和一些环境细节。
  • @rahulmamgain :由于机密问题,我无法提供完整的 Docker 文件。
  • @rahulmamgain :由于机密问题,我无法提供完整的 Docker 文件。请参阅以下详细信息- 1).Kafka 基于 Java8 映像。 2).RUN rm /tmp/kafka_2.12-0.10.2.1.tgz 3).2181 是zookeeper,9092 是kafka,9000 是kafka manager 4)EXPOSE 2181 9092 9000。然后Producer 和Consumer 用基本的Java 独立编写应用。此应用程序在 localhost 上运行,并且 kafka 容器在 localhost 上运行。通过以下命令启动 kafka 容器 - docker run -itd --add-host hostname:hostIP -p 9092:9092 -p 2181:2181 kafka

标签: javascript apache-kafka containers


【解决方案1】:

得到了我的问题的答案。 需要在 Kafka“server.properties”文件中为“0.0.0.0:9092”提供“Listener”值。 更新了 kafka 的 Docker 文件,以便当容器为 Kafka 启动时,它应该具有低于 Kafka 容器中侦听器的值。

Kafka Container>config>Server.properties>Listener=0.0.0.0:9092.

一旦完成,只需启动 Kafka 容器,使用 Zookeeper 的端口转发和使用 localhost 的 Kafka 端口。然后您就可以将本地的 Kafka 消息发送到 Kafka 容器,也可以从 Kafka 容器外部使用这些消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-22
    • 2022-09-24
    • 2018-04-08
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多