2017-11-16 1 views
1

セットアップ: 1.カフカを実行しているドッカーカフカコンテナです。 2. Kafkaコンテナの外部からのKafkaメッセージを生成して消費するJava基本アプリケーション。/etc/hostsファイルを更新せずに外部からKafka Dockerコンテナにアクセスできません。

コンテナの外から、私はJavaスクリプトを使用してKafkaメッセージを送信しようとしていて、Javaスクリプトで記述されたコンシューマでこれらのメッセージを消費しようとしています。 これは、KafkaコンテナのIPアドレスとホスト名の詳細を含むetc/hostsファイルを更新する場合に機能します。 etc/hostsファイルの詳細を更新しないようにすることをお勧めします。 要件: etc/hostsファイルを更新する必要がありますが、どうすれば外部からKafkaコンテナにアクセスできますか?

+0

少なくともドッカー画像の詳細と環境の詳細を共有する必要があります。 – rahulmamgain

+0

@rahulmamgain:機密事項のため完全なDockerファイルを提供できません。 – Rahul

+0

@rahulmamgain:機密事項のため完全なDockerファイルを提供できません。以下をご覧ください-1).KafkaはJava8イメージに基づいています。 2).RUN rm /tmp/kafka_2.12-0.10.2.1.tgz 3).2181は動物園、9092はカフカ、9000はカフカマネージャー用です。4)EXPOSE 2181 9092 9000。次に、プロデューサーとコンシューマーは基本的なJavaスタンドアロンで書かれています応用。このアプリケーションはlocalhost上で動作しており、kafkaコンテナはlocalhost上にあります。次のコマンドを実行してkafkaコンテナを起動する - docker -add-host hostname:hostIP -p 9092:9092 -p 2181:2181 kafka – Rahul

答えて

0

問題の答えが見つかりました。 Kafkaの "server.properties"ファイルの "Listener"値を "0.0.0.0:9092"にする必要があります。 Kafka用のDockerファイルが更新されました。これにより、Kafka用にコンテナが稼働しているときに、Kafkaコンテナ内のListener以下の値に設定する必要があります。

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

これが完了したら、ZookeeperポートとKafkaポートをlocalhostでポート転送するKafkaコンテナを起動してください。そして、あなたはカフカのメッセージを地元のカフカのコンテナに送ることができ、カフカのコンテナの外からそれらのメッセージを消費することもできます。

関連する問題