I am a big fan of Kafka, and I am using it a lot to connect my domains and services with scalable and performant asynchronous communication. Over the time, I sometimes run into a situation where I need to get rid of a topic that has become obsolete. In some (rare) cases, topics are "sticky", and even though I ordered a deletion, they somehow remain.

This is where zookeeper-shell comes into play. Let's assume for this example that I

  • have a zookeeper instance running on a server named zookeeper-1, listening on port 2181.
  • let's further assume that I have a topic named NOTNEEDEDANYMORE that I want to get rid of.
  • let's finally assume that the normal way of deleting the topic didn't work (for whatever reason)

In this special situation, the following two commands will do the job:

$ zookeeper-shell zookeeper-1:2181
# now I am connected to the shell
[] rmr /brokers/topics/NOTNEEDEDANYMORE
[] rmr /admin/delete_topics/NOTNEEDEDANYMORE
# by now, the topic is gone
# quit the shell
[] quit
$