2016-08-02 2 views
4

ドッキング・コンテナから実行中のkafkaトピックを作成するために使用されるポート5000のドッカー・コンテナで、休憩サービスを実行しています。ドッカーで動作しているサービスからkafkaにメッセージを生成できません

私は以下の特性を持つ私のプロデューサークライアントを設定しました: -

bootstrap.servers=localhost:9093 

そして私は始めました、私の次のコマンドを含んでいた: -

docker run -d -p 127.0.0.1:5000:5000 <contained id> 

私もに設定の下に作られましたカフカのホストとポートを宣伝する

advertised.host.name=localhost 
advertised.port=9093 

私が試してみるとすべての設定を行っているにもかかわらずカフカの話題になったら、以下のエラーが表示されます。 -

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms. 

誰かが実際の問題点を指摘できますか?

答えて

3

実生活では、advertised.host.nameは決してlocalhostであってはなりません。

あなたのケースでは、ブリッジネットワークモードでDockerコンテナを実行するので、ホストマシンではなくコンテナネットワークを指すので、localhost経由でブローカに到達することはできません。

bootstrap.serversifconfig docker0が返すIPアドレスに設定する必要があります(あなたのケースではdocker0ではないかもしれませんが、その点が分かります)。

また、おそらくコンテナを--net=hostで実行している可能性がありますが、アドバタイズされたホスト名を正しく設定する方がよいと思います。

関連する問題