卡夫卡消息没有被清除
Kafka messages not getting purged
我是卡夫卡的新手。我正在做一些关于如何清除 kafka 主题中的消息的实验。我发现如果我们将主题的 "retention.ms" 属性 设置为更短的时间值,比如 1 秒,那么根据我的理解,1 秒后主题中的消息将被清除。
我 运行 1 个生产者产生了很少的主题消息并在一段时间后停止了。同时我 运行 一个控制台消费者,所以它得到了生成的消息。
保留时间结束后,我为同一主题启动了另一个消费者控制台,比方说 1-2 分钟后。但令我惊讶的是,我能够收到有关该主题的消息。
2 分钟后,当我最终没有在主题中看到任何消息时,再次启动控制台消费者。 kafka 清除消息用了将近 3-4 分钟。
Kafka 是否需要任何其他设置才能立即清除消息?
设置retention.ms
不保证消息会立即从主题中删除。即使它将被标记为删除。
如果您的消息是成对的形式,那么设置保留时间还不够好。您还必须设置以下参数:
log.cleanup.policy
log.cleaner.min.compaction.lag.ms
log.cleaner.enable
另一组参数控制消息的删除,以防它们出现在您的配置中:
log.retention.ms
log.roll.hours
我是卡夫卡的新手。我正在做一些关于如何清除 kafka 主题中的消息的实验。我发现如果我们将主题的 "retention.ms" 属性 设置为更短的时间值,比如 1 秒,那么根据我的理解,1 秒后主题中的消息将被清除。
我 运行 1 个生产者产生了很少的主题消息并在一段时间后停止了。同时我 运行 一个控制台消费者,所以它得到了生成的消息。 保留时间结束后,我为同一主题启动了另一个消费者控制台,比方说 1-2 分钟后。但令我惊讶的是,我能够收到有关该主题的消息。 2 分钟后,当我最终没有在主题中看到任何消息时,再次启动控制台消费者。 kafka 清除消息用了将近 3-4 分钟。 Kafka 是否需要任何其他设置才能立即清除消息?
设置retention.ms
不保证消息会立即从主题中删除。即使它将被标记为删除。
如果您的消息是成对的形式,那么设置保留时间还不够好。您还必须设置以下参数:
log.cleanup.policy
log.cleaner.min.compaction.lag.ms
log.cleaner.enable
另一组参数控制消息的删除,以防它们出现在您的配置中:
log.retention.ms
log.roll.hours