listeners和advertised.listeners

来源:10-1 Kafka集群篇介绍

kingdomad

2021-02-24

没搞清楚这两个参数的使用,网上看了一些帖子,感觉也没有说清楚。

listeners=INSIDE://172.17.0.10:9092,OUTSIDE://<公网 ip>:端口
advertised.listeners=INSIDE://172.17.0.10:9092,OUTSIDE://<公网 ip>:端口
listener.security.protocol.map=INSIDE:SASL_PLAINTEXT,OUTSIDE:SASL_PLAINTEXT
inter.broker.listener.name=INSIDE

比如上面这个配置,advertised.listeners是暴露出去的地址,然后比如公网ip过来的请求,kafka服务器会通过 zookeeper 中注册的监听器,找到 OUTSIDE监听器,然后通过listeners中找到对应的地址,然后通过这个地址连接。这个理解对吗?
如果是这样的话,那又何必区分listeners和advertised.listeners?
既然是通过listeners的地址去连接,为啥不直接把listeners的地址暴露出去呢?

写回答

1回答

Allen

2021-02-25

其实看名字就大概能猜出一些东西了。  listeners是真实监听, advertised.listeners主要是对外公布的监听。 既然这么区分,肯定是为了在对外监听上动手脚,加一些安全上的东西。 比如ssl或者sasl,不过和课上说的一样, 其实kafka的安全机制属于比较弱的,能不对外公布就不要对外公布了

1
4
Allen
回复
kingdomad
不是,其实就是一个封装,然后advertised.listeners转发至listeners
2021-02-28
共4条回复

Kafka多维度系统精讲,从入门到实战开发

系统讲解Kafka,实战结合,让你成为使用Kafka的高手

896 学习 · 237 问题

查看课程