1、
server.properties添加配置auto.create.topics.enable=false,默认true
server.properties添加配置delete.topic.enable=true,默认为true
确保topic的producer和consumer客户端全部停掉
2、
删除topic
kafka-topics --delete --zookeeper 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 --topic test-topic
3、
然后手动删除log.disrs路径下,对应的topic_name文件夹,如果是多个borker则每 个broker都需要手动删除
4、
打开zkCLi.cmd,访问zookeeper
删除以下路径的topic
ls /config/topics
rmr /config/topics/topic_name
ls /consumers
ls /brokers/topics
rmr /brokers/topics/topic_name
ls /admin/delete_topics
rmr /admin/delete_topics/topic_name
5、
重启zookeeper和kafka,查看topic是否已删除
kafka-topics.bat --list --zookeeper 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
生产环境最好关闭删除topic的功能,delete.topic.enable=false,删除可能会出现好多问题,kafka有自动清理日志功能,log.retention.hours=168日志默认保留时间7天 (168个小时),直接使用新创建的topic做业务
删除所有topic
1、删除kafka的log.disrs目录下所有日志文件
2、删除zookeeper的data和log下数据文件(保留myid)
3、重启zookeeper和kafka