总结

sentinel默认保留文件数是6,因为生成文件的时候文件名包含了pid,所以如果系统重启生成了,那么会重新生成6个文件,之前的也会保留,以下图是由于我们的服务重启发布所以pid进行了变更,所以之前的pid的文件被保留了下来

image-20211211211426057

具体清理的策略是在创建文件的时候,检查当前文件的数量是否大于保留文件数,如果是则进行删除。

源码分析

文件保留文件数设置

初始化MetricWriter类的时候,调用了SentinelConfig.totalMetricFileCount()方法获取了文件数

image-20211211210344894

获取文件数

具体初始化在SentinelConfig文件中

image-20211211210449750

image-20211211210607168

image-20211211210641077

image-20211211210704869

设置文件数

可以看到最终值保存在了totalFileCount属性中

image-20211211205906695

删除大于指定数量的日志文件

写入指标的文件的时候调用调用了 closeAndNewFile方法,而closeAndNewFile方法有调用了removeMoreFiles方法

image-20211211210106753

image-20211211210033082

image-20211211205949466

更多推荐