web-dev-qa-db-ja.com

Kafka-Javaを使用してリモートサーバーにメッセージを送信できません

Kafkaクラスターを作成して、メッセージをリモートコントロールに送信しようとしています。 here の説明に従ってすべてを構成しました。私はこれをLinux Red Hatマシン、およびシェルを使用して正常に動作します。 Javaコードを記述した後、quick start Windowsマシンのチュートリアルで、次のエラーが表示されました。

...
DEBUG kafka.client.ClientUtils$ - Successfully fetched metadata for 1 topic(s)     Set(example)
...
ERROR kafka.producer.SyncProducer - Producer connection to cldExampleKafka.domain:80 unsuccessful 
Java.nio.channels.UnresolvedAddressException
    ...
    at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44)
...
WARN kafka.producer.async.DefaultEventHandler - Failed to send producer request with correlation id 2 to broker 0 with data for patitions [ATI,0]
Java.nio.channels.UnresolvedAddressException
...
kafka.common.FailedToSendMessageException: Failed to send message after 3 tries.

また、別のLinuxマシンでjarを実行しようとしましたが、それでも同じエラーが発生しました。

アドレスをlocalhostに変更し、Javaがインストールされているマシンでjarとしてkafkaコードを実行すると動作します。

構成には問題があると思いますが、見つかりませんでした。

17
itaied

あなたのkafka server.propertiesにはコメントされた設定があります

#advertised.Host.name=<Some IP>

これのコメントを外し、kafkaが実行されているLinuxマシンのIPを追加します。

advertised.Host.name=<Kafka Running Machine IP>

そして、クライアントから<Kafka Running Machine IP>に接続します。これで問題が解決するはずです。

[〜#〜] edit [〜#〜]

オプションで、コメントを外すことができます

#advertised.port=9092

また、デフォルトのポートとは異なるポートでリッスンしている場合。

33
shazin

で働いた

from server.propertiesコメント解除

listeners=PLAINTEXT://:9092

そして

advertised.listeners=PLAINTEXT://<Host IP>:9092

<Host IP>を実際のIPに置き換えます。

15
Dhananjay

ローカルマシンからkafka=リモートクラスターに接続しようとしました。

VMには、1つの内部IP(9.0.0.1)と1つの外部IP(192.1.1.1)がありました。 sshは内部のみで外部はできません。 conifg/server.propertiesにこれらの変更を加えました。

//マシンのIPに設定(ifconfigまたはhostname -Iを使用して検索)

listeners=PLAINTEXT://192.1.1.1:9092

//コンシューマとプロデューサが接続するIPに設定

advertised.listeners=PLAINTEXT://9.0.0.1:9092  
1
CodeUrLife

config/server.properties
このlisteners=PLAINTEXT://[server_ip]:9092

そしてそれはうまくいきました。

簡単なテストのために、kafka-consumerのコマンドラインで[server_ip]を使用することを忘れないでください。例:

/usr/local/kafka_2.11-2.0.0/kafka-console-consumer.sh --property print.timestamp=true --bootstrap-server [server_ip]:9092 --topic [you_topic]

これがお役に立てば幸いです。
アリについて

1
Ali Ait-Bachir