2016-11-04 4 views
1

シナリオ:私のDockerized Kafkaコンテナから、私のチームメートの物理マシンにメッセージをプッシュする必要があります。KafkaとDocker:Kafkaメッセージを別のDockerized Consumerにプッシュ

チームメイト(アルフレッドと呼ぶことにする)は、自分のカフカをWindowsに直接インストールしています。

もう1つ(Bobと呼ぶ)は、Dockerized Kafkaコンテナも使用しています。

結果は、これまでに:私たちは、私のカフカからカフカ生産メッセージをプッシュすることができました

は、AlのコンピュータのNON-DOCKERIZED消費者インスタンスの消費者の中に含まれています。だから私たちはそれ以上の設定は分かりません。プロデューサー側。必要とされている。 Rob Rerisのドッキングされたカフカにアクセスするのは難しいことです。コマンドdocker network inspect bridgeを利用すると、ドッキングされたコンテナは、会社のネットワークの一般的なIPv4アドレスからカプセル化されています。

enter image description here

我々が同定され、潜在的な問題の数をテストしようとしました。

1.受信者のVMのポート転送ルール。 ポート転送ルールの調整が試行されました。解決策はありません。 2.受信者のフォルダにopt/kafka_2.11-0.9.0.0/config /の下にあるserver.propertiesを再設定します。 ませんソリューション 3.再設定カフカコンテナの下にあるserver.propertiesの/ etc /カフカは/ 4.私たちが利用しているカフカ運用ビルドのドッキングウィンドウ-compose.ymlファイルに余分なラインを追加し、再構築しないソリューションカフカボブコンテナ。 行が追加されました。KAFKA_LISTENERS: "PLAINTEXT://0.0.0.0-9092"

これまでのところ、私はBobの内部ネットワークIPにテストメッセージを送信してもまだ受信していません。

私のテストメッセージ:

/bin/kafka-console-producer.sh --broker-list {Bob's IPv4}:9092 --topic test 

は、それは私が実際に何とか...彼のDockerized IPをターゲットにする必要があるということだろうか?私は確信していますが、VituralBoxのサイトツーサイトポートフォワーディングについてはすでに説明しています。

アシスタンスありがとうございます。

答えて

0

あなたが直面している問題は、Kafkaが個人のIPをZookeeperに広告することに関連するよく知られた問題であり、クライアントからは届きません。カフカは、ホストネットワークスタックを使用するので、ネットワークモード=ホストを使用して

  • 起動カフカコンテナ:あなたはカフカをdockerizeとき

    は、次の2つの幅広い選択肢を持っています。

  • コンテナポート転送を使用して、Kafkaが使用するホストIPとポートをKafka config "advertised.listeners"を適切な値に設定するように通知します。これを自動的に行うには、ホストIP(およびポート)を検出し、サービスを実行する前にKafkaプロパティファイルを設定するブートストラップスクリプトを作成する必要があります。 wurstmeister/kafka-dockerをご覧ください。
関連する問題