Kafkacat: как удалить тему или все ее сообщения? - PullRequest
1 голос
/ 19 апреля 2019

Я ищу способ удалить тему или все ее сообщения, используя kafkacat.Это возможно или единственный способ - через скрипт здесь ?

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic mytopic

Ответы [ 2 ]

2 голосов
/ 19 апреля 2019

На этой стадии в kafkacat нет функции удаления темы в соответствии с man-страницей и исходным кодом github.Таким образом, единственный способ - использовать скрипт kafka-themes.

исходный код github

справочная страница

kafkacat является универсальным производителем и потребителем не JVM для Apache Kafka 0.8, рассматривайте его как netcat для Kafka.

 In producer mode ( -P ), kafkacat reads messages from stdin, delimited with a configurable
 delimeter and produces them to the provided Kafka cluster, topic and partition. In consumer
 mode ( -C ), kafkacat reads messages from a topic and partition and prints them to stdout
 using the configured message delimiter.

 If neither -P or -C are specified kafkacat attempts to figure out the mode automatically
 based on stdin/stdout tty types.

 kafkacat also features a metadata list mode ( -L ), to display the current state of the
 Kafka cluster and its topics and partitions.
0 голосов
/ 19 апреля 2019

Да, это возможно.

Но сначала вы должны разрешить удаление тем на всех брокерах. изменить delete.topic.enable на true. По умолчанию это falseserver.properties файле)

Тогда, Используйте команду удаления темы.

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic mytopic

Если вы хотите удалить эту тему навсегда, Вы можете использовать команду удаления zookeeper.

  1. Список существующих тем: ./zookeeper-shell.sh localhost:2181 ls /brokers/topics
  2. Удалить тему: ./zookeeper-shell.sh localhost:2181 rmr /brokers/topics/yourtopic
...