Kafka系列之:日志清理
一、日志清理
- Kafka将消息存储在磁盘中,为了控制磁盘占用空间的不断增加就需要对消息做一定的清理操作。
- Kafka中每一个分区副本都对应一个Log,而Log又可以分为多个日志分段,这样也便于日志的清理操作。
Kafka提供了两种日志清理策略:
- 日志删除:按照一定的保留策略直接删除不符合条件的日志分段
- 日志压缩:针对每个消息的key进行整合,对于有相同key的不同value值,只保留最后一个版本。
日志清理策略设置:
-
可以通过broker端参数log.cleanup.policy来设置日志清理策略,此参数的默认值为delete,即采用日志删除的清理策略。
-
如果要采用日志压缩的清理策略,就需要将log.cleanup.policy设置为compact,并且还需要将log.cleaner.enable(默认值为true)设定为true。
-
通过将log.cleanup.policy参数设置为"delete、compact",可以同时支持日志删除和日志压缩两种策略。
-
日志清理的粒度可以控制到主题级别,比如与log.cleanup.policy对应的主题级别的参数为cleanup.policy。
二、日志删除
-
在Kafka的日志管理器中会有一个专门的日志删除任务来周期性地检测和删除不符合保留条件的日志分段文件,这个周期可以通过broker端参数log.retention.check.interval.ms来配置,默认值为300000,即5分钟。
</