我见过与此相关的类似问题,但未找到正确的答案。我只想删除Kafka主题中的消息,而不是更改保留超时。 我已经安装了 kafka_2.11-0.8.2.1 并使用bat文件在Windows上运行它。我想知道是否可以删除主题中发布的所有消息而不删除整个主题。
答案 0 :(得分:1)
你不能用0.8.2做到这一点。 从0.11.0开始,你会得到一个kafka-delete-records.sh工具。 从1.1开始,您甚至可以使用带有deleteRecords方法的Java AdminClient API来执行此程序。
答案 1 :(得分:0)
Kafka与此方面的其他消息不同。 Kafka不是消费删除语义框架。你无法删除,但可以提前读取偏移量,消费者将获得下一条消息。
如果它想要再次或现在从经纪人那里阅读任何消息,那么消费者有责任。无论消费者消费消息与否,kafka都会将消息存储在配置的时间内,然后删除。
有人可能会写一些脚本来达到这个目的,但我强烈建议不要这样做。