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这个地址

大概这些吧 .

posted @ 2020-05-14 20:16  孙行者、  阅读(8962)  评论(2编辑  收藏  举报