rocketmq 消息删除_RocketMQ(5)——消息文件过期原理
时间: 2023-11-19 15:06:13 浏览: 129
rocketmq-master_rocketmq_paintkgm_
RocketMQ 中的消息文件是以时间戳命名的,比如 20190827080000,表示这个消息文件会在 2019 年 8 月 27 日 08:00:00 过期,过期后 RocketMQ 会将其删除。RocketMQ 通过定时任务来检查消息文件是否过期,检查的时间间隔由参数 fileReservedTime 控制,默认值为 72 小时。
当一个消息被发送到 Broker 时,Broker 会根据消息的时间戳计算出它应该存储在哪个消息文件中。如果该消息文件已经过期(即该消息文件的时间戳小于当前时间减去参数 fileReservedTime 的值),则 Broker 会将该消息写入到一个新的消息文件中,并删除过期的消息文件。
RocketMQ 通过这种方式来保证消息文件不会无限增长,避免空间浪费。但是,如果一个消息文件中的消息一直没有被消费,那么该消息文件可能永远不会过期,这时需要手动删除该消息文件。
阅读全文