填坑記之Kafka_遠程連接Kafka集羣時需要注意的

kafka在實際生產環境中集羣服務和生產者以及消費者不會總是在同一個網絡中,如果不在一個網絡中則會出現一些問題,下面就是我遇到的一個問題,分享給大家。

場景介紹

Kafka集羣4個節點都在辦公網,業務系統(生產者)在生產網。根據規定,生產網和辦公網是隔離的,生產網不允許直接和辦公網連接。現在我們需要業務系統將數據放到辦公網中的Kafka集羣中,於是就有了下面的解決方案。

解決方案

總體思路是通過公網進行轉發,並且考慮到安全,在網絡設備上進行了端口映射以及訪問白名單。具體說就是申請一個公網ip,在網絡設備上將這個公網ip和四個端口綁定,並將這四個端口映射到kafka集羣的四個節點服務器上。

坑之所在

上述解決方案本身沒有問題,理想情況下,業務系統的作爲生產者用如下測試腳本就可以將消息發送到Kafka中,假設公網ip是:124.121.235.123,測試腳本如下:

./kafka-console-producer.sh --broker-list  124.121.235.123:9191,124.121.235.123:9192,124.121.235.123:9193,124.121.235.123:9194  --topic test

但是實際情況是:

填坑之道

在kafka集羣中,在server.properties中修改如下kafka配置項:

advertised.listeners=PLAINTEXT://124.121.235.123:9194

默認該項配置是註釋掉的,如果不修改的話,kafka默認使用listeners配置項或者localhost+port來生產或者消費消息,但是現在的場景顯然使用是不可行的,因爲listeners配置的是辦公網內網的ip,與生產網並不通,所以需要將該配置項的ip修改爲遠程服務器需要訪問kafka集羣的ip,對應到上述場景的話就是我們的公網ip。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章