簡述
在公司的測試環(huán)境中,有的應(yīng)用需要遠(yuǎn)程連接kafka,本地有時(shí)也是需要連接到kafka進(jìn)行Debug,這就需要將kafka配置成外部可連接。想要實(shí)現(xiàn)這種效果,有兩種實(shí)現(xiàn)方法,第一種方法是將所有kafka的連接都配置成公網(wǎng)IP連接。第二種方法是采用kafka的內(nèi)外分離配置。方法一雖然能夠?qū)崿F(xiàn)kafka的外部連接,可是服務(wù)器上面對kafka的連接也會(huì)默認(rèn)使用公網(wǎng)IP的方式連接,而不是內(nèi)網(wǎng),這樣會(huì)給實(shí)例的公網(wǎng)帶寬帶來很大的壓力,應(yīng)用一多,就會(huì)造成實(shí)例無法進(jìn)行登錄。而方法二就可以有效的避免這種現(xiàn)象了,它是將云上本地應(yīng)用采用內(nèi)網(wǎng)來連接kafka,而同時(shí)又采用不同的端口配置外網(wǎng)連接,這樣能夠有效的減少公網(wǎng)帶寬的壓力。
配置方法
在原有配置的基礎(chǔ)上加上或者更改如下配置,配置接受外網(wǎng)連接的端口為9093,同時(shí)打開安全組的9093端口,配置過后通過重啟kafka即可通過9093在本地連接kafka。
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
listeners=INTERNAL://<內(nèi)網(wǎng)IP>:9092,EXTERNAL://0.0.0.0:9093
advertised.listeners=INTERNAL://<內(nèi)網(wǎng)IP>:9092,EXTERNAL://<外網(wǎng)IP>:9093
inter.broker.listener.name=INTERNAL
配置介紹
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT主要分別定義內(nèi)部和外部連接采用的安全協(xié)議
listeners=INTERNAL://<內(nèi)網(wǎng)IP>:9092,EXTERNAL://0.0.0.0:9093主要是定義內(nèi)部和外部連接監(jiān)聽的地址端口
advertised.listeners=INTERNAL://<內(nèi)網(wǎng)IP>:9092,EXTERNAL://<外網(wǎng)IP>:9093主要是提交給zookeeper來實(shí)現(xiàn)對kafka內(nèi)部和外部的連接,最開始改配置只是配置了外部的連接,沒有內(nèi)部的連接,所以對kafka的連接都是通過外部連接。
inter.broker.listener.name=INTERNAL主要是制定kafka集群內(nèi)部broker之前通過INTERNAL的配置來進(jìn)行內(nèi)部通訊。