2017-08-21 119 views
1

我已將Kafka支持集成到我們的服務器中並進行了測試。它在我的開發人員環境中運行良好,但其他開發人員無法在開發人員環境中運行它。這個問題與我在自己的開發環境中的經歷類似,但我不明白爲什麼它在我的機器上運行,而不是他們的。無法連接到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 Admin客戶端嘗試連接到bootstrap.servers= "127.0.0.1:9092,127.0.0.1:9093,127.0.0.1:9094"時,它會超時,但對於我的環境,它立即連接。我們都在Git的develop分支上運行,所以我們應該運行相同的環境。

另一個測試:我的docker-compose堆棧在我的機器上運行,當我運行我們的服務器時它連接正常。當我的同事配置他的bootstrap.servers使用我的IP地址時,即使他可以遠程登錄到我的機器上的代理,他也會看到同樣的問題。

任何人都可以建議任何其他診斷技巧和竅門,以找出爲什麼卡夫卡管理客戶端無法連接到經紀人?

回答

0

好的,發現問題了。我按照https://github.com/wurstmeister/kafka-docker的示例進行操作,並嘗試使用KAFKA_ADVERTISED_HOST_NAME的簡單路徑。 Kafka已棄用advertised.host.name,並試圖在多代理配置中使用它是有問題的。

早些時候,我通過將代理主機名添加到/ etc/hosts並解決了這個問題,但我忘記了我正在使用kludge並沒有告訴其他開發人員。該團隊不想編輯/ etc/hosts,所以我正在研究一個不涉及advertised.host.name的解決方案