为什么删除 Kafka 主题需要这么长时间?
Why can it take so long to delete Kafka topics?
在 3 节点集群上,我创建了几个包含数千条消息的主题。我注意到删除主题需要很长时间。我花了超过 14 分钟 才删除 500 个主题。
- 是否有删除主题的最佳实践?
- 有没有文档解释为什么删除一个主题要花这么多时间?
- 当我创建主题时,Kafka 会在log.dirs 下创建一个文件夹。我有 10000 个主题;我 运行 一条命令将它们全部删除。 Kafka 已从 log.dirs 中删除所有 10000 个文件,但 Kafka-topics.sh 显示文件系统上不存在的主题,并带有“- 标记为删除”。
- 我认为在 Kafka 中删除主题没有任何最佳实践。至于
delete.topic.enable=true
是在 server.properties
中定义的,您可以使用 简单地删除主题
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic myTopic
- 如果您的主题足够大(而且您的复制因子可能也很高),那是正常的。本质上,主题的消息存储在日志文件中。如果您的主题非常大,那么删除所有这些文件可能需要一些时间。我认为这里的正确指标是您尝试删除的主题的大小,而不是主题的数量(您可以有 500 个主题,每个主题有 1 条消息,而不是 500 个主题,例如每个主题有 1TB 的消息)。
不保证 Kafka 主题删除是即时的。当您 'delete' 一个主题时,您实际上是在将其标记为删除。当 TopicDeletionManager 下次运行时,它将开始删除所有标记为删除的主题。如果主题日志较大,这也可能需要更长的时间。
在 3 节点集群上,我创建了几个包含数千条消息的主题。我注意到删除主题需要很长时间。我花了超过 14 分钟 才删除 500 个主题。
- 是否有删除主题的最佳实践?
- 有没有文档解释为什么删除一个主题要花这么多时间?
- 当我创建主题时,Kafka 会在log.dirs 下创建一个文件夹。我有 10000 个主题;我 运行 一条命令将它们全部删除。 Kafka 已从 log.dirs 中删除所有 10000 个文件,但 Kafka-topics.sh 显示文件系统上不存在的主题,并带有“- 标记为删除”。
- 我认为在 Kafka 中删除主题没有任何最佳实践。至于
delete.topic.enable=true
是在server.properties
中定义的,您可以使用 简单地删除主题
bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic myTopic
- 如果您的主题足够大(而且您的复制因子可能也很高),那是正常的。本质上,主题的消息存储在日志文件中。如果您的主题非常大,那么删除所有这些文件可能需要一些时间。我认为这里的正确指标是您尝试删除的主题的大小,而不是主题的数量(您可以有 500 个主题,每个主题有 1 条消息,而不是 500 个主题,例如每个主题有 1TB 的消息)。
不保证 Kafka 主题删除是即时的。当您 'delete' 一个主题时,您实际上是在将其标记为删除。当 TopicDeletionManager 下次运行时,它将开始删除所有标记为删除的主题。如果主题日志较大,这也可能需要更长的时间。