我在谷歌計算引擎上運行我的zookeeper和kafka服務器。兩者都在默認端口上運行(在9180上的zookeeper和9092上的kafka)。兩者都在同一個實例上運行。我也打開了兩個港口。在我的server.properties我已經配置無法從本地機器連接到谷歌計算引擎上的kafka服務器
zookeeper.connect=<InternalIP>:2181
host.name=localhost
如果我試圖推動/消費信息形成同一臺服務器,我能夠這樣做 爲推動/消耗我用
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
然而,如果從我的本地機器嘗試在同一我的生產者和java.net.ConnectException得到kafka.common.FailedToSendMessageException:連接消費者 的情況下refuesed我試圖推動/通過消耗
bin/kafka-console-producer.sh --broker-list <ExternalIP>:9092 --topic topic1
bin/kafka-console-consumer.sh --zookeeper <ExternalIP>:2181 --topic topic1 --from-beginning
請注意,我可以從本地系統ping外部IP。
我已經配置在計算引擎下面提到的防火牆規則
Description
kafka port enabled
Network
default
Source filter
Allow from any source (0.0.0.0/0)
Allowed protocols and ports
tcp:9092
說明
zookeeper port enabled
Network
default
Source filter
Allow from any source (0.0.0.0/0)
Allowed protocols and ports
tcp:2181
這是因爲zookeeper與內部IP綁定,而不是與外部IP綁定。 –
zookeeper和kafka都在同一個vm實例上運行,因此我使用內部IP進行綁定。 – BKSingh