我在我们的生产集群上配置了一个主题,它的保留期为 432000000 毫秒,即 5 天。但它通常保存包含 10 天前时间戳的最早消息!例如,今天 3 月 22 日,我使用控制台消费者命令检查了该主题中的数据。第一个记录的时间戳为 3 月 12 日。这些数据几乎在生成时进入主题,因此日志中的时间戳与排队时的实际时间没有区别。那么,Kafka 存储的消息远远超过了配置的保留期,这怎么会发生呢?
保留设置是下限。
在您的示例中,这意味着 Kafka 不会删除任何不到 5 天的消息。
磁盘上的日志被分成几个部分。Kafka 仅对完整段执行删除操作,不会触及最新(活动)段。因此,要删除段,其中的最后一条消息必须早于 5 天,并且不能是最新的段。
默认情况下,Kafka 仅在新段超过 7 天(log.roll.hours=168)或达到最大大小(log.segment.bytes=1GB)时才会滚动。
因此,由于大小的原因,您似乎没有产生足够的数据来滚动新段,因此我建议减少log.roll.hours以强制更频繁地创建新段。
| 归档时间: |
|
| 查看次数: |
1272 次 |
| 最近记录: |