kubernetes容器环境下 kafka会默认把主机名注册到zookeeper。这个时候消费端部署在不同的命名空间或者不同的集群中会出现无法访问的情况。用advertised.listeners配置可以重写默认注册的地址。

定义

listeners

listeners 配置的是kafka Server 的tcp侦听ip地址。

advertised.listeners

该配置主要是用于把Broker的ip地址信息发布到Zookeeper中,简而言之就是配置的kafka的broker ip。如果你的消费端需要不同集群/网段的访问 需要确保改地址该消费端可访问的地址

其他这个也不一定是在容器环境下会存在 常规的机器环境下也会出现这个问题 如果broker的ip消费端访问不到的情况下 像下面这个异常 可以查一下这个问题。


java.net.UnknownHostException: cep-kafka
at java.net.InetAddress.getAllByName0(InetAddress.java:1281)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)