Exception caught: mqAdminExt get broker stats data TOPIC_PUT_NUMS failed

最近发现部署rocketmq-dashboard的服务器磁盘满了,查找了一番原因:后台每秒打印警告:

Exception caught: mqAdminExt get broker stats data TOPIC_PUT_NUMS failed...
Exception caught: mqAdminExt get broker stats data GROUP_GET_NUMS failed, topic...

查看rocketmq-dashboard代码,是收集统计数据的定时任务打印的警告日志,遍历了topic和group,从broker获取统计数据,方法是:collectTopic定时任务。
果断更新到最新版后,统计时间改为每分钟统计一次。警告照常打印。

为什么会打印呢?

public BrokerStatsData viewBrokerStatsData(String brokerAddr, String statsName, String statsKey, long timeoutMillis)
        throws MQClientException, RemotingConnectException, RemotingSendRequestException, RemotingTimeoutException,
        InterruptedException {
        ViewBrokerStatsDataRequestHeader requestHeader = new ViewBrokerStatsDataRequestHeader();
        requestHeader.setStatsName(statsName);
        requestHeader.setStatsKey(statsKey);

        RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.VIEW_BROKER_STATS_DATA, requestHeader);

        RemotingCommand response = this.remotingClient
            .invokeSync(MixAll.brokerVIPChannel(this.clientConfig.isVipChannelEnabled(), brokerAddr), request, timeoutMillis);
        assert response != null;
        switch (response.getCode()) {
            case ResponseCode.SUCCESS: {
                byte[] body = response.getBody();
                if (body != null) {
                    return BrokerStatsData.decode(body, BrokerStatsData.class);
                }
            }
            default:
                break;
        }

        throw new MQClientException(response.getCode(), response.getRemark());
    }

源码得出,统计时没有获取到数据,throw new MQClientException

为什么没有取到数据?

查看源码的得出结论:
只有实际收发消息的时候才会创建统计条目,如果一直没有消息收发的话,也就找不到对应的统计数据了,找不到数据就抛出了一个异常
这里就不贴出源码了,有兴趣的可以自己查看。定时任务位置:DashboardCollectTask.collectTopic

解决方法:

不同的版本,调用方法差不多,全局搜索一下:Exception caught: mqAdminExt get broker stats data TOPIC_PUT_NUMS failed, topic
把日志等级更改为bug -> log.warn改为log.bug
在这里插入图片描述
这个警告不影响任何开发和使用,可以忽略。因此我这里只是简单的更改了一下日志等级。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值