深入理解KAFKA_ADVERTISED_LISTENERS
(1)内网访问(2)外网访问于是springboot程序通过外网访问的时候,配置 改成这样 (1)程序首先是从zookeeper中获取broker地址。然后用这个地址去连kafka。如果配置的地址是外网程序找不到的一个地址,那就连不上了。(2)zookeeper中的地址是通过这个关键句来配置的。
一、直入主题,解释
(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
第二步:程序里写的地址就是内网的地址,下图是,172.16.3.130
KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092
将kafka绑定到局域网所有网卡,当局域网的机器访问的时候,直接在springboot中配置本地ip。如
(2)外网访问
以上程序,如果部署在外网。则需要做如下改变
第一步: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
这个关键句来配置的。
更多推荐
所有评论(0)