RocketMQ -- 过期文件的删除,kafka也会定期清理文件。

在Broker启动的时候,就会启动一个定时任务,延迟30s,然后每5分钟就开始去判断释放要删除过期文件。

image.png

任务开始的时候,就会遍历所有的Segment文件。

默认情况下,仅保留7天的文件。判断时间是通过Segment文件中的最大时间戳largestTimestamp来判断的,而不是文件的修改时间。

image.png

如果所有的Segment文件都被删除了,那需要创建一个新的Segment文件。

image.png

如果当前有多个Segment文件,那这几个Segment文件的总大小如果超过了设置的阈值,假设超过了2.5G,而每个Segment文件都是1G,那需要删除3个Segment文件才可以保证Segment文件的总大小小于了设置的阈值。

和上面一样,如果所有的Segment文件都被删除了,那需要创建一个新的Segment文件。

image.png


大军
847 声望183 粉丝

学而不思则罔,思而不学则殆