Comment obtenir la liste de tous les topics Kafka avec Zookeeper ?

Kafka est une plateforme open-source utilisée pour héberger les données de streaming et plus généralement de traitement de données. C'est aujourd'hui une plateforme utilisée par des milliers de grandes entreprises. Les flux de données sont hébergés sur des topics. Ces topics sont eux-mêmes hébergés sur des clusters qui correspondent à des instances de serveurs. Lorsque vous gérez un cluster, vous pouvez obtenir la liste des topics hébergés. Pour cela, la manipulation dépend de la version de Kafka que vous utilisez.

Kafka fonctionne avec ZooKeeper, une plateforme permettant de créer ou maintenir un serveur open-source. Avant la version 2.2, il est nécessaire de démarrer une instance de ZooKeeper pour pouvoir utiliser Kafka. Une fois que vous avez démarré ZooKeeper, vous devez faire de même pour la plateforme Kafka. Une fois tous les serveurs démarrés, vous pouvez utiliser le script "kafka-topics.sh", qui permet de gérer les topics. L'option "--list" indique que l'on souhaite lister les topics. L'option "--zookeeper" indique que l'on utilise la plateforme ZooKeeper. Il faut ensuite indiquer l'adresse de la plateforme. Par défaut, quand on l'utilise sur son serveur, il s'agit de "localhost" sur le port 2181.

# Démarrage de l'instance de ZooKeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
# Démarrage de l'instance de Kafka
bin/kafka-server-start.sh config/server.properties
# Lister les topics disponibles
bin/kafka-topics.sh --list --zookeeper localhost:2181

Depuis la version 2.2, la connexion avec ZooKeeper n'a plus à être lancée. Une nouvelle option, l'option "—bootstrap-server" permet de lancer automatiquement les serveurs afin de faire la liste. Vous devez indiquer avec cette option l'identifiant du ou des broker(s), les instances conçues pour gérer les serveurs Kafka.

bin/kafka-topics.sh --list --bootstrap-server