编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Kafka删除topic步骤以及注意事项(kafka清理过期数据原理)

wxchong 2024-07-11 01:21:48 开源技术 21 ℃ 0 评论

删除kafka topic不仅仅是在Kafka Manager上点击下Delete Topic,或者直接命令kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【待删除的topic name】删除这么简单

前提条件

  1. 待删除的topic生产者和消费者需要停止,同时确认topic的自动创建被关闭,防止其他疏忽的原因(比如消费者没有停止,导致topic再次自动创建) auto.create.topics.enable = false
  2. kafka服务端配置需要开启 delete.topic.enable=true,否则无法删除,只是标识markerd for deletion

删除topic

  1. 执行 bin/kafka-topics --delete --zookeeper [ zookeeper server:port ] --topic [ 待删除的topic name ]
  2. 清理kafka数据目录下对应topic的数据,注意检查每个broker。一般这样就完成topic删除的工作了,若还无法删除需要到zk里去清理下kafka元数据。

若无法删除,检查zk

  1. 检查zookeeper 里kafka数据信息
# 使用zk客户端zkCli.sh 登陆到zk
bin/zkCli.sh -server 【zookeeper server:port】
# 检查kafka topic信息,默认以下目录,根据实际目录检查
ls /brokers/topics
# 删除对应topic信息
rmr /brokers/topics/【topic name】

如果topic 是被标记为 marked for deletion,则通过命令 ls /admin/delete_topics,找到要删除的topic,然后执行命令:

rmr /admin/delete_topics/【topic name】

若忘记关停生产者和消费者,还需要删除topic在zk上面的消费节点记录、配置节点记录,比如:

rmr /consumers/【consumer-group】

rmr /config/topics/【topic name】

检查topic是否删除

bin/kafka-topics.sh --list --zookeeper 【zookeeper server:port】若列表没有,恭喜你,topic已被完全删除。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表