Kafkacat:如何删除主题或其所有消息?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafkacat:如何删除主题或其所有消息?相关的知识,希望对你有一定的参考价值。

我正在寻找一种方法来使用kafkacat删除主题或其所有消息。是否可能或唯一的方法是通过列出here的脚本?

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

根据手册页和github源代码,在kafkacat的这个阶段没有删除主题功能。所以唯一的方法是使用kafka-topics脚本。

github source code

man page

kafkacat是Apache Kafka 0.8的通用非JVM生产者和消费者,将其视为Kafka的netcat。

 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.
另一答案

是的,这是可能的。

但首先,您必须在所有代理上启用主题删除。将delete.topic.enable改为true。默认情况下,它是false(在server.properties文件中)

然后,使用主题删除命令。

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

如果要永久删除该主题,可以使用zookeeper delete命令。

  1. 列出现有主题:./zookeeper-shell.sh localhost:2181 ls /brokers/topics
  2. 删除主题:./zookeeper-shell.sh localhost:2181 rmr /brokers/topics/yourtopic

以上是关于Kafkacat:如何删除主题或其所有消息?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 Azure 服务总线主题上的死信消息

在主题中保留消息,直到所有消费者完成处理

如何消费来自多个主题的消息?

如何使用 NodeJS mqtt、emqx 订阅所有主题/消息

ActiveMQ JMS 主题 - 删除旧消息

是否可以选择删除主题中超过一小时的 kafka 主题旧消息