場(chǎng)景說(shuō)明:
當(dāng)客戶端與服務(wù)端在不同區(qū)域(跨防火墻,地址均做了映射)時(shí),客戶端訪問(wèn)kafka時(shí)會(huì)出現(xiàn)獲取不到broker的問(wèn)題,但是網(wǎng)絡(luò)之間是互通的。但在跨防火墻下,client請(qǐng)求zookeeper的時(shí)候,zookeeper返回給client的broker IP是kafka的實(shí)際地址,而不是映射地址,因此client會(huì)訪問(wèn)失敗。
解決方式一、
1、配置文件:listeners=PLAINTEXT://主機(jī)名:9092
2、服務(wù)端hosts:內(nèi)網(wǎng)地址 主機(jī)名
3、客戶端hosts :外網(wǎng)地址 主機(jī)名
注意事項(xiàng):不安全,且配置復(fù)雜不統(tǒng)一
解決方式2:(案例)
1、注釋:listeners=PLAINTEXT://192.168.111.134:9092
添加:
inter.broker.protocol.version=1.0
log.message.format.version=1.0
advertised.listeners=INSIDE://192.168.111.134:9092,OUTSIDE://node7:9093
listeners=INSIDE://192.168.111.134:9092,OUTSIDE://node7:9093
listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
inter.broker.listener.name=INSIDE
解釋:相當(dāng)于開通2個(gè)端口,如果服務(wù)器多網(wǎng)卡可以主機(jī)名部分填寫外網(wǎng)地址。
如果采用統(tǒng)一管理,可采用主機(jī)名解析,用nginx代理。
上面的變更,需要3臺(tái)重啟集群重啟生效,zk監(jiān)聽地址不一樣了,如圖(所以要考慮到業(yè)務(wù),建議標(biāo)準(zhǔn)化配置)
2、服務(wù)端hosts
內(nèi)網(wǎng)地址 主機(jī)名 (這里采用域名解析)
注意:官網(wǎng)也提供了安全加密,非文本加密方式,如果kafka和zk都要求安全,建議參考官網(wǎng)統(tǒng)一配置
官網(wǎng)相關(guān)參數(shù)解釋:
host.name:
advertised.host.name:
advertised.listeners:
listeners:
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。