在代理卡夫卡中标记为删除消息

marked for deletion message in broker kafka

为什么在 Kafka 中通过这个命令删除一个主题时:

/opt/kafka/confluent-4.0.0/bin/kafka-topics --zookeeper 109.169.xxx.xx:2181  --delete --topic test

再次查看主题列表,出现此消息?

test - marked for deletion

在Kafka中,主题删除是异步的。当您使用 --delete 运行 kafka-topics 工具时,您只是将主题标记为删除。

实际删除在大多数情况下会在不久之后发生,但根据集群的状态,它可能会延迟。

万一它卡住了,弹跳控制器通常会有所帮助。

如果你的主题很久没有被删除,那么确保server.properties中的delete.topic.enable设置为true(尽管confluent 4.0.0自带这个配置)。如果您仍然遇到同样的问题,您可以使用

登录 Zookeeper 手动删除主题
zookeeper-shell localhost:2181

现在您可以使用

删除主题
rmr /brokers/topics/{topic_name}
rmr /admin/delete_topics/{topic_name}

请注意,您可能需要在登录 ZK 之前从 Kafka 代理计算机中删除主题文件夹,以便手动删除主题。