What is Advertised. listeners in Kafka?

  • Post last modified:July 16, 2022
  • Reading time:2 mins read

Introduction

Hi guys,
Today we gonna talk about Kafka Broker Properties.
More Specifically, advertised. listeners‘ property. If you have seen the server.properties file in Kafka there are two properties with listener settings.

#listeners=PLAINTEXT://:9092

#advertised.listeners=PLAINTEXT://your.host.name:9092

why we need two listeners for our broker?

usually, Kafka brokers talk to each other and register themselves in zookeeper using listeners’ property. So for all internal cluster communication happens over what you set in listeners property.

But if you have a complex network, for example, consider if your cluster is on the cloud which has an internal network, and also external IP on which rest of the work can connect to your cluster, in that case, you have to set advertised.listeners property with {EXTERNAL_IP}://{EXTERNAL_PORT}.

Example

If Internal IP is 10.168.4.9 and port is 9092 and External IP is 35.196.212.10 and port is 3101 then your property will look like,
listeners=PLAINTEXT://10.168.4.9:9092 &
advertised.listeners = PLAINTEXT://35.196.212.10:3101

So broker will register this value in zookeeper and when the external world wants to connect to your Kafka Cluster they can connect over the network which you provide in “advertised. listeners” property.

Bonus Tip


This is also true in the case of Kafka running inside the Kubernetes Cluster. In that case, you might want to open NodePort on your worker node and provide node_ip and port as “advertised.listeners” to allow the outside world to communicate to Kafka cluster.

Leave a Reply