Kafka提供了两种主要的日志清理策略:删除策略(Log Deletion)和压缩策略(Log Compaction)。以下是这两种策略的详细说明以及如何设置它们:
日志清理策略设置
- 删除策略(Log Deletion)
- 基于时间的保留策略:删除超过指定时间的日志分段。可以通过
log.retention.hours
、log.retention.minutes
或log.retention.ms
参数来配置,默认值为168小时(7天)。 - 基于日志大小的保留策略:删除超过指定大小的日志分段。可以通过
log.retention.bytes
参数来配置,默认值为无穷大(-1)。 - 基于日志起始偏移量的保留策略:删除起始偏移量小于当前日志分段的日志分段。这个策略在较新版本的Kafka中引入,可以通过相关配置实现。
- 压缩策略(Log Compaction)
- 压缩策略适用于需要保留每个键的最新版本场景,例如数据库变更日志。可以通过设置
log.cleanup.policy
为compact
来启用压缩策略。
配置参数
log.cleanup.policy
:设置日志清理策略,可以是delete
、compact
或delete,compact
(同时启用两种策略)。log.retention.check.interval.ms
:设置日志清理任务的检查间隔,默认值为300,000毫秒(5分钟)。log.segment.bytes
:设置每个日志分段的大小,默认值为1,073,741,824字节(1GB)。log.retention.bytes
:设置每个日志分区允许使用的最大存储空间,默认值为-1(表示不限制)。
在修改配置参数后,需要重启Kafka服务以使更改生效。根据实际需求和硬件资源,可以调整这些参数以优化Kafka的性能和存储空间。。