3

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

  1. 是否有删除主题的最佳实践?
  2. 是否有任何文件可以解释为什么删除一个主题需要这么多时间?
  3. 当我创建一个主题时,Kafka 会在 log.dirs 下创建一个文件夹。我有 10000 个主题;我运行了一个命令来删除所有这些。Kafka 已从 log.dirs 中删除了所有 10000 个文件,但 Kafka-topics.sh 显示文件系统上不存在的主题,并带有“-标记为删除”。
4

2 回答 2

2
  1. 我认为在 Kafka 中删除主题没有任何最佳实践。据delete.topic.enable=true定义,server.properties您可以简单地使用删除主题
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic myTopic
  1. 如果您的主题足够大(并且您的复制因子也可能很高),那么这是正常的。本质上,主题的消息存储在日志文件中。如果您的主题非常大,则可能需要一些时间才能删除所有这些文件。我认为这里的正确度量标准是您尝试删除的主题的大小,而不是主题的数量(您可以拥有 500 个主题,每个主题有 1 条消息,而不是 500 个主题,每个主题有 1TB 的消息)。
于 2019-11-14T22:45:00.400 回答
0

Kafka 主题删除不保证是即时的。当您“删除”一个主题时,您实际上是在将其标记为删除。当TopicDeletionManager下次运行时,它将开始删除任何标记为删除的主题。如果主题日志较大,这也可能需要更长的时间。

于 2019-11-18T10:54:42.650 回答