Kafka學習理解-listeners配置

參考: https://www.jianshu.com/p/52a505354bbc

listeners

broker 服務器要監聽的地址及端口 . 默認是 localhost:9092 ,0.0.0.0的話 ,表示監聽本機的所有ip地址.

本機配置:

  • localhost : 只監聽本機的地址請求, 客戶端也只能用 localhost 來請求
  • 127.0.0.1 : 同localhost, 在請求上可能有與區分 , 看client的請求吧 . 客戶端也只能用127.0.0.1來請求
  • 192.168.0.1 : 有點腦子的都不要用這個 , 你的局域網不一定是 192.168 段的.
  • 0.0.0.0 : 本機的所有地址都監聽 , 包含 localhost , 127.0.0.1, 及不同網卡的所有ip地址 , 都監聽 .

多網卡配置:

  • A網卡ip : 只監聽A網卡上的請求 , B網卡來的請求不管的
  • A和B網卡ip : 可以同時配置多網卡 , 也可以用0.0.0.0來代表所有網卡

advertised.listeners

這個是對外提供的地址 , 當client請求到kafka時, 會分發這個地址.

這個地址會有三個地方用到: 集羣內其他的broker,生產者,消費者

這裏可以不填 , 不填就默認用 listeners 的地址.

對於生產環境, 直接用listeners的地址肯定不合適的.

這個配置可以適配多種網絡環境 . 單網絡環境 ,只配置一個地址 , 多網絡環境可以配置多個地址.

單網絡環境

對於調用者的三個地方 , 都在同一個網絡環境裏 , 那麼只配置一個地址就好了 .

舉個例子 , 有以下機器配置:

  • broker 1 : 10.120.0.1
  • broker 2 : 10.120.0.2
  • producer : 10.120.0.3
  • consumer : 10.120.0.4

所以應用都在同一個網絡環境裏 , 互相可以直接連通的. 那麼對於broker 1 這個應用的配置就可以是:

listeners=PLANTEXT://0.0.0.0:9092
advertised.listeners=PLANTEXT://10.120.0.1:9092

那麼其他三個應用上 , 在調用broker 1的時候 , 都是通過10.120.0.1:9092這個地址 .

多網絡環境

一般是內外網 , 就兩個環境 , 其他博客上這種配置很多 .
這裏我們假設有三個網絡環境 , kafka 集羣內一個網絡 , 生產者一個網絡 , 消費者一個網絡.

  • broker 1 : 10.120.0.1 , 172.120.0.1 , 115.120.0.1
  • broker 2 : 10.120.0.2
  • producer : 172.120.0.2
  • consumer : 115.120.0.2

這時候broker 1 的網絡配置,可以是如下配置:

listeners=PLANTEXT://0.0.0.0:9092
advertised.listeners=INNER://10.120.0.1:9090,PRO://172.120.0.1:9092,CON:115.120.0.1:9092
listener.security.protocol.map=INNER:PLANTEXT,PRO:PLANTEXT,CON:PLANTEXT
inter.broker.listener.name=INNER

設置了三個地址 . broker之間通信使用INNER, 當producer來調用時 , 給172.120.0.1:9092這個地址 , 當consumer來調用時 , 給115.120.0.1:9092這個地址

大概這些吧 .

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