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