Kafka的消息存储在磁盘中,为了控制磁盘占用空间,Kafka需要不断地对过去的一些消息进行清理工作。Kafka的每个分区都有很多的日志文件,这样也是为了方便进行日志的清理。在Kafka中,提供两种日志清理方式:
- 日志删除(Log Deletion):按照指定的策略直接删除不符合条件的日志。
- 日志压缩(Log Compaction):按照消息的key进行整合,有相同key的但有不同value值,只保留最后一个版本。
在Kafka的broker或topic配置中:
| 配置项 | 配置值 | 说明 |
|---|---|---|
| log.cleaner.enable | true(默认) | 开启自动清理日志功能 |
| log.cleanup.policy | delete(默认) | 删除日志 |
| log.cleanup.policy | compact | 压缩日志 |
| log.cleanup.policy | delete,compact | 同时支持删除、压缩 |
1. 日志删除
日志删除是以段(segm
本文详细介绍了Kafka中的日志清理机制,包括日志删除和日志压缩。日志删除通过定时任务按时间、大小和起始偏移量策略进行,而日志压缩则通过整合相同key的最新value实现。配置如log.retention.hours和log.retention.bytes可调整保留策略。日志压缩则保持最新key-value,不影响查询。
订阅专栏 解锁全文
4385

被折叠的 条评论
为什么被折叠?



