Kafka集羣常見的跨網絡訪問詳解

場景說明:
當客戶端與服務端在不一樣區域(跨防火牆,地址均作了映射)時,客戶端訪問kafka時會出現獲取不到broker的問題,可是網絡之間是互通的。但在跨防火牆下,client請求zookeeper的時候,zookeeper返回給client的broker IP是kafka的實際地址,而不是映射地址,所以client會訪問失敗。
Kafka集羣常見的跨網絡訪問詳解node

解決方式1、
一、配置文件:listeners=PLAINTEXT://主機名:9092
二、服務端hosts:內網地址 主機名
三、客戶端hosts :外網地址 主機名nginx

注意事項:不安全,且配置複雜不統一安全

解決方式2:(案例)
一、註釋:
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

解釋:至關於開通2個端口,若是服務器多網卡能夠主機名部分填寫外網地址。
若是採用統一管理,可採用主機名解析,用nginx代理。
上面的變動,須要3臺重啓集羣重啓生效,zk監聽地址不同了,如圖(因此要考慮到業務,建議標準化配置)
Kafka集羣常見的跨網絡訪問詳解ide

二、服務端hosts
內網地址 主機名 (這裏採用域名解析)加密

注意:官網也提供了安全加密,非文本加密方式,若是kafka和zk都要求安全,建議參考官網統一配置

Kafka集羣常見的跨網絡訪問詳解

官網相關參數解釋:代理

host.name:
Kafka集羣常見的跨網絡訪問詳解code

advertised.host.name:
advertised.listeners:
listeners:orm

Kafka集羣常見的跨網絡訪問詳解
Kafka集羣常見的跨網絡訪問詳解

相關文章
相關標籤/搜索