2016-08-24 52 views
0

我有兩臺機器localhost和192.168.1.110來運行兩臺獨立的單機kafka。可以在消費者或生產者中使用kafka broker ip嗎?

(1)在本地主機,我運行:

➜kafka_2.11-0.10.0.0斌/ kafka-console-producer.sh --broker列表192.168.1.110:9092 --topic測試 這是一條消息 [2016-08-24 18:15:27,441]錯誤發送消息到主題測試時出現錯誤:null,value:2字節錯誤:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback ) org.apache.kafka.common.errors.TimeoutException:包含1條記錄的批處理由於超時而從經紀商請求元數據以用於測試-0 0

爲什麼消息無法發送給代理192.168。 1.110? 我可以直接在消費者或生產者中使用經紀人ip嗎? 如果我只能使用主機名,這是否涉及advertised.host.name? 那麼如何設置advertised.host.name?這是否主機名應該是全局解析(我可以使用/ etc/hosts來解析主機名?)

(2) 我編輯/ etc/hosts來讓本地主機指向192.168.1.110, 然後我跑: ➜kafka_2.11-0.10.0.0斌/ kafka-console-producer.sh --broker列表本地主機:9092 --topic測試

,我可以成功發送信息到192.168.1.110和消耗的消息有。

(3)I編輯/ etc/hosts來讓rrlocalhost指向192.168.1.110, 然後我運行: ➜kafka_2.11-0.10.0.0倉/ kafka-console-producer.sh --broker列表rrlocalhost:9092 --topic測試

然後我發送的消息到rrlocalhost,存在相同的錯誤,如(1)。

回答

1

絕對可以直接使用IP地址。

代理配置advertised.host.name將在zookeeper中註冊,生產者和消費者將獲取它們作爲羣集元數據。如果你使用本地暱稱進行配置,生產者和消費者將很難與之通信。