在Linux中,Kafka的日志清理策略主要包括以下几种:
基于时间的日志清理
- 配置参数:
log.retention.hours
(小时)、log.retention.minutes
(分钟)、log.retention.ms
(毫秒)。
- 描述:当日志段超过指定的保留时间后,Kafka会删除这些日志段。默认值为168小时(7天)。
基于日志大小的清理
- 配置参数:
log.retention.bytes
(字节)。
- 描述:当某个分区日志的大小达到配置的上限时,Kafka会自动清理最旧的日志数据,避免存储空间被占满。默认值为无穷大(-1),表示不限制。
日志压缩(Log Compaction)
- 配置参数:
log.cleanup.policy
(设置为compact
启用压缩策略)、log.cleaner.enable
(默认值为true)。
- 描述:压缩策略主要用于仅保留每个键的最新日志版本,适用于需要追踪状态变化的场景。例如,在一个主题中只有最新的key对应的数据被保留,其他旧版本的数据会被清理。
混合策略(Delete + Compact)
- 描述:老的segment会因为大小或时间被删除,同时topic partition也会被compact。适用于既有时间保留需求又有空间优化需求的场景。
基于日志起始偏移量的保留策略
- 描述:基于日志段的起始偏移量来决定哪些日志段可以被删除。这个策略在较新版本的Kafka中引入。
需要注意的是,具体的配置参数可能会因Kafka版本的不同而有所差异,因此在实际应用中,还需要根据具体的业务需求和系统环境来调整相关参数。