Kafka在Linux环境下的存储策略全景
一 核心存储策略
二 关键配置参数与含义
| 策略维度 | 核心参数 | 作用说明 | 常用取值或建议 |
|---|---|---|---|
| 数据留存 | log.retention.ms / minutes / hours | 按时间删除旧消息;三者优先级:ms > minutes > hours | 如保留7天:log.retention.hours=168 |
| 数据留存 | log.retention.bytes | 按主题/分区总大小删除旧消息 | 如每分区上限1GB:-1表示不限制 |
| 段与滚动 | log.segment.bytes | 单个日志段上限,触发滚动与清理 | 默认1GB;需大于单条最大消息 |
| 段与滚动 | log.segment.ms | 按时间触发滚动 | 如600000ms(10分钟) |
| 清理策略 | log.cleanup.policy | 选择delete或compact(或两者) | 日志型:delete;KV型:compact |
| 存储路径 | log.dirs | 指定多个日志目录(多盘) | 如:/data1/kafka,/data2/kafka |
| 消息大小 | message.max.bytes | Broker可接收的最大消息大小 | 默认约1MB;大消息需调大 |
| 复制传输 | replica.fetch.max.bytes | 副本拉取的最大消息大小 | 需≥message.max.bytes |
| 压缩 | compression.type | 批量消息压缩算法 | 如:snappy / lz4 / zstd |
| 以上参数既可在Broker级配置,也可在Topic级覆盖,用于精细控制存储与保留行为。 |
三 容量规划与估算方法
四 Linux系统层面的优化要点