2017-08-21 9 views
1

カフカのサポートをサーバーに統合してテストしました。私の開発環境では正常に動作しますが、他の開発者は開発環境で動作させることはできません。問題は自分の開発環境で経験したことと似ていますが、なぜ自分のマシンで動作しているのかわからないのです。カフカに接続できません

基本的には、ドッカーの作成スタックでKafkaを実行します。どちらの環境でも、​​は同じ構成の実行を示します。

$ docker-compose ps 
      Name       Command    State       Ports       
---------------------------------------------------------------------------------------------------------------------------- 
localdockerdevelop_kafka-1_1  start-kafka.sh     Up  0.0.0.0:9092->9092/tcp        
localdockerdevelop_kafka-2_1  start-kafka.sh     Up  0.0.0.0:9093->9092/tcp        
localdockerdevelop_kafka-3_1  start-kafka.sh     Up  0.0.0.0:9094->9092/tcp        
localdockerdevelop_mysql_1  docker-entrypoint.sh mysqld  Up  0.0.0.0:3306->3306/tcp        
localdockerdevelop_redis_1  docker-entrypoint.sh redis ... Up  0.0.0.0:6379->6379/tcp        
localdockerdevelop_zookeeper_1 /bin/sh -c /usr/sbin/sshd ... Up  0.0.0.0:2181->2181/tcp, 22/tcp, 2888/tcp, 3888/tcp 

どちらの環境でも、telnet 127.0.0.1 9092に接続すると、Kafkaブローカーに接続します。しかし、Kafka Adminクライアントがbootstrap.servers= "127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094"に接続しようとする環境では、タイムアウトしますが、私の環境ではすぐに接続します。私たちはどちらもGitのdevelopブランチから実行しているので、同じ環境を実行する必要があります。

もう1つのテスト:ドッキングマシンを自分のマシン上で実行しています。サーバーを実行すると、正常に接続されます。私の同僚が彼のbootstrap.serversを私のipアドレスを使うように設定すると、私のマシンのブローカーにtelnetで接続することができますが、彼は同じ問題を抱えています。

誰もが、Kafka Admin Clientがブローカに接続できない理由を理解するためのヒントを教えてください。

答えて

0

問題が見つかりました。私はhttps://github.com/wurstmeister/kafka-dockerの例を踏襲し、KAFKA_ADVERTISED_HOST_NAMEを使用する簡単な方法を取ろうとしました。 Kafkaはadvertised.host.nameを推奨しておらず、マルチブローカー構成でそれを使用しようとすると問題があります。

私は/ etc/hostsにブローカーホスト名を追加してこの問題を回避しましたが、このkludgeは機能しますが、私はを忘れました私はkludgeを使用していました。チームは/ etc/hostsを編集する必要がないので、私はadvertised.host.nameを含まない解決策に取り組んでいます

関連する問題