listeners 这个是kafka bind的端口
advertised.listeners 这个是kafka在zookeeper中注册的端口,用户客户端更新metadata
如果需要外网访问则需要配置 advertised.listeners, 但是如果配置一个则内外网都会用这个地址,浪费流量
网上有修改host的解决办法,但是会对客户端有侵入性。其实如果认真看了kafka的文档,是有办法解决的。
listener.security.protocol.map=PUBLIC_CLIENT:PLAINTEXT,PRIVATE_CLIENT:PLAINTEXT
advertised.listeners=PRIVATE_CLIENT://内网地址,PUBLIC_CLIENT://外网地址
PUBLIC_CLIENT,PRIVATE_CLIENT,并不是固定的可以任意修改,可以理解成协议的别名。
增加这两个配置就可以了,既不用修改host, 也能实现内网走内网地址,外网走外网地址。