RocketMQ无聊的细节之磁盘空间使用比为什么是-1

背景

环境

linux系统

RocketMQ Dledger集群模式

RocketMQ 4.7.1版本

现象

执行mqadmin clusterList 查看集群列表,磁盘空间使用率为-1

原因

跟源码看下这条命令的执行流程,不是来分析源码的,所以源码细节忽略,有兴趣,直接根据下面的提示查看源码,源码也比较直白,看起来很简单:

1.从MQAdminStartup类的initCommand()方法,找到这个命令的类:ClusterListSubCommand

2.从ClusterListSubCommand类里printClusterBaseInfo方法上,可以找到这个磁盘空间使用率的字段,看字面意就是commitLog所在分区已经使用的磁盘空间占比:

3.看下broker端怎么处理commitLogDiskRatio这个字段:

第2步标红框:KVTable kvTable = defaultMQAdminExt.fetchBrokerRuntimeStats(next1.getValue());的这个方法,是请求获取获取broker运行状态信息,根据请求码,进入broker的AdminBrokerProcessor类这个地方:

4.一路跟源码,进入AdminBrokerProcessor类的这个方法里:prepareRuntimeInfo()

5.在DefaultMessageStore类里找到了最终想要的这个值

6.看下怎么计算的:

有多种情况返回 -1值。

实际我写这篇文章进行测试的时候,这里是该路径的目录不存在的原因,看下这个路径path的值:

好的,这是个默认值,如果默认配置启动broker,那就确认下家目录下有没有store/commitlog这个目录,没有的话,创建就行。

如果启动broker的时候,指定了配置,那就按配置的storePathCommitLog的路径,创建一下目录即可。

顺便说一下,broker启动的时候初始化这个配置的代码位置,在BrokerStartup类里:

总结

出现磁盘使用率为-1,一般是配置的storePathCommitLog的路径不存在,创建这个路径的目录即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不识君的荒漠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值