(1)第一句話=========
KAFKA_LISTENERS:負責綁定網卡
KAFKA_ADVERTISED_LISTENERS:負責發(fā)布外網地址,這個地址會發(fā)布到zookeeper中。
(2)第二句話========
內網部署的程序,讀的地址是KAFKA_LISTENERS寫的。
外網部署的程序,讀的地址是KAFKA_ADVERTISED_LISTENERS
zookeeper中存的地址是KAFKA_ADVERTISED_LISTENERS配置的,多個kafka注冊到zookeeper就是把這個地址放到zookeeper中。如果不能理解的,可以用客戶端工具打開zookeeper,看一下就清楚了。
仔細回味上面這幾句話,接下來看實際例子。
(1)內網訪問第一步:kafka配置0.0.0.0:9092,表示內網所有網卡都綁定9092
第二步:程序里寫的地址就是內網的地址,下圖是,172.16.3.130
(2)外網訪問KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092
將kafka綁定到局域網所有網卡,當局域網的機器訪問的時候,直接在springboot中配置本地ip。如
以上程序,如果部署在外網。則需要做如下改變
第一步:KAFKA_CFG_ADVERTISED_LISTENERS配置這個。
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://<互聯網ip>:9092
,這句話意思是將PLAINTEXT://<互聯網ip>:9092,放到zookeeper中。當外面的服務訪問到zookeeper的時候,從這個地址拿到kafka的內容,看下圖,zookeeper中的broker-ids里存的就是這個你寫上去的地址。
第二步:springboot程序通過外網訪問的時候,配置 改成這樣
二、解析原理(1)程序首先是從zookeeper中獲取broker地址。然后用這個地址去連kafka。如果配置的地址是外網程序找不到的一個地址,那就連不上了。
(2)zookeeper中的地址是通過
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://<互聯網ip>:9092
這個關鍵句來配置的。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧