Kafka 的日志清理(Log Cleanup)是管理磁盘空间、确保系统稳定运行的核心机制。因为 Kafka 会将消息持久化到磁盘上,如果不进行清理,磁盘空间最终会被耗尽。 Kafka 提供了两种主要的日志清理策略,由配置参数 来控制:Delete(删除策略) 和 Compact(压缩/压实策略)。此外,还可以将两者混合使用。 需要特别注意的是:所有的清理策略都只针对“非活跃的日志分段(Inactive Log Segments)”生效,当前正在写入的活跃分段(Active Segment)是绝对不会被清理的。 以下是详细的策略解析: --- 1. 删除策略(Delete Policy) 配置项:(这是 Kafka 的默认策略) 核心思想:直接删除旧的日志分段(Segment)。Kafka 允许根据时间或文件大小来决定何时删除数据。 A. 基于时间的保留(Time-based Retention) Kafka 会定期检查日志分段的最后修改时间,如果超过了设定的阈值,就会将其删除。 配置参数(优先级从高到低:ms > minutes > hours): :毫秒级别。 :分钟级别。 ...