深入理解KAFKA_ADVERTISED_LISTENERS

一、直入主题,解释

(1)第一句话=========

KAFKA_LISTENERS:负责绑定网卡

KAFKA_ADVERTISED_LISTENERS:负责发布外网地址,这个地址会发布到zookeeper中。

(2)第二句话========

内网部署的程序,读的地址是KAFKA_LISTENERS写的。

外网部署的程序,读的地址是KAFKA_ADVERTISED_LISTENERS

zookeeper中存的地址是KAFKA_ADVERTISED_LISTENERS配置的,多个kafka注册到zookeeper就是把这个地址放到zookeeper中。如果不能理解的,可以用客户端工具打开zookeeper,看一下就清楚了。

仔细回味上面这几句话,接下来看实际例子。

(1)内网访问

第一步:kafka配置0.0.0.0:9092,表示内网所有网卡都绑定9092

深入理解KAFKA_ADVERTISED_LISTENERS_第1张图片

第二步:程序里写的地址就是内网的地址,下图是,172.16.3.130

KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092

将kafka绑定到局域网所有网卡,当局域网的机器访问的时候,直接在springboot中配置本地ip。如

深入理解KAFKA_ADVERTISED_LISTENERS_第2张图片

(2)外网访问

以上程序,如果部署在外网。则需要做如下改变

第一步:KAFKA_CFG_ADVERTISED_LISTENERS配置这个。

KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://<互联网ip>:9092

,这句话意思是将PLAINTEXT://<互联网ip>:9092,放到zookeeper中。当外面的服务访问到zookeeper的时候,从这个地址拿到kafka的内容,看下图,zookeeper中的broker-ids里存的就是这个你写上去的地址。

深入理解KAFKA_ADVERTISED_LISTENERS_第3张图片

第二步:springboot程序通过外网访问的时候,配置 改成这样

深入理解KAFKA_ADVERTISED_LISTENERS_第4张图片

二、解析原理

深入理解KAFKA_ADVERTISED_LISTENERS_第5张图片

(1)程序首先是从zookeeper中获取broker地址。然后用这个地址去连kafka。如果配置的地址是外网程序找不到的一个地址,那就连不上了。

(2)zookeeper中的地址是通过

KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://<互联网ip>:9092

这个关键句来配置的。

你可能感兴趣的:(kafka,kafka,java,spring,boot)