为什么删除卡夫卡主题需要这么长时间?

时间:2019-11-14 21:01:25

标签: apache-kafka kafka-topic

在3节点群集上,我创建了几个主题,但包含数千条消息。我注意到删除主题需要很长时间。我花了超过 14分钟的时间来删除500个主题

  1. 是否有删除主题的最佳做法?
  2. 是否有任何文档解释为什么删除主题需要这么长时间?
  3. 创建主题时,Kafka将在log.dirs下创建一个文件夹。我有10000个主题;我执行命令删除所有这些。 Kafka已从log.dirs中删除了所有10000个文件,但是Kafka-topics.sh用“-标记为删除”显示了文件系统上不存在的主题。

2 个答案:

答案 0 :(得分:2)

  1. 我不认为有任何最佳做法可以删除Kafka中的主题。就delete.topic.enable=true中定义的server.properties而言,您只需使用
  2. 即可删除主题
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic myTopic
  1. 如果您的主题足够大(并且您的复制因子也可能很高),那么这很正常。本质上,主题消息存储在日志文件中。如果您的主题非常大,则可能需要一些时间才能删除所有这些文件。我认为这里合适的指标是您尝试删除的主题的大小,而不是主题的数量(您可以有500个主题,每个主题有1条消息,而不是500个主题,例如每条1TB消息)。

答案 1 :(得分:0)

不能保证立即删除Kafka主题。 “删除”主题时,实际上是将其标记为删除。下次运行TopicDeletionManager时,它将开始删除所有标记为删除的主题。如果主题日志较大,这可能还会花费更长的时间。