阅读量:64
Apache Kafka 中的消息保留时间可以通过配置 log.retention.hours(以小时为单位)或 log.retention.ms(以毫秒为单位)这两个参数来设置。以下是具体的配置步骤:
1. 配置 log.retention.hours
在 Kafka 的配置文件 server.properties 中,找到或添加以下行:
log.retention.hours=168 # 默认值是168小时,即一周
将 168 替换为你希望设置的保留时间(以小时为单位)。
2. 配置 log.retention.ms
如果你更喜欢使用毫秒作为单位,可以使用以下配置:
log.retention.ms=604800000 # 默认值是604800000毫秒,即一周
将 604800000 替换为你希望设置的保留时间(以毫秒为单位)。
3. 配置 log.segment.bytes 和 log.segment.ms
这两个参数控制日志段的大小和时间,间接影响消息的保留。你可以根据需要调整这些参数:
log.segment.bytes=1073741824 # 默认值是1GB
log.segment.ms=60000 # 默认值是60秒
4. 配置 log.cleanup.policy
确保你的清理策略设置为 delete 或 compact,具体取决于你的需求:
log.cleanup.policy=delete # 默认值是delete
如果你使用压缩策略,可以设置为 compact:
log.cleanup.policy=compact
5. 重启 Kafka 服务
修改配置文件后,需要重启 Kafka 服务以使更改生效:
# 停止 Kafka 服务
bin/kafka-server-stop.sh
# 启动 Kafka 服务
bin/kafka-server-start.sh config/server.properties
注意事项
- 消息大小限制:确保你的消息大小不超过
message.max.bytes的限制。 - 日志目录:Kafka 的日志文件存储在
log.dirs指定的目录中。 - 监控和日志:定期监控 Kafka 的日志目录,确保没有磁盘空间不足的问题。
通过以上步骤,你可以成功配置 Kafka 的消息保留时间。