要删除的topic有一般是两种状态之一:
- 当前topic没有使用过-没有传输过信息:用kafka-topics.bat的delete命令可以彻底删除
- 当前topic有使用过即有过传输过信息:用kafka-topics.bat的delete命令并没有真正删除topic,只是把这个topic标记为删除(marked
for deletion) 还需要以下操作:
-
配置kafka中server.properties添加:delete.topic.enable=true
-
删除kafka中的topic
.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --delete --topic topic_name
-
手动删除kafka中文件夹logdir下,对应的topic_name文件夹
-
打开zookeeper的bin文件目录下的zkCli.cmd脚本命令:
通过输入以下命令,删除以下路径名为topic_name的topic:rmr /config/topics/topic_name rmr /brokers/topics/topic_name rmr /admin/delete_topics/topic_name
-
重启zookeeper和kafka,查看要删除的的topic是否已经删除:
.\bin\windows\kafka-topics.bat --zookeeper localhost:2181 --list