rocketmq源码解析之管理请求查询broker状态数据

说在前面apache

管理请求之查询broker状态数据缓存

 

源码解析微信

进入到这个方法org.apache.rocketmq.broker.processor.AdminBrokerProcessor#ViewBrokerStatsDatathis






private RemotingCommand ViewBrokerStatsData(ChannelHandlerContext ctx,RemotingCommand request) throws RemotingCommandException {final ViewBrokerStatsDataRequestHeader requestHeader =(ViewBrokerStatsDataRequestHeader) request.decodeCommandCustomHeader(ViewBrokerStatsDataRequestHeader.class);final RemotingCommand response = RemotingCommand.createResponseCommand(null);DefaultMessageStore messageStore = (DefaultMessageStore) this.brokerController.getMessageStore();//        从缓存中获取broker的状态数据=》StatsItem statsItem = messageStore.getBrokerStatsManager().getStatsItem(requestHeader.getStatsName(), requestHeader.getStatsKey());if (null == statsItem) {response.setCode(ResponseCode.SYSTEM_ERROR);response.setRemark(String.format("The stats <%s> <%s> not exist", requestHeader.getStatsName(), requestHeader.getStatsKey()));return response;}BrokerStatsData brokerStatsData = new BrokerStatsData();{BrokerStatsItem it = new BrokerStatsItem();StatsSnapshot ss = statsItem.getStatsDataInMinute();it.setSum(ss.getSum());it.setTps(ss.getTps());it.setAvgpt(ss.getAvgpt());brokerStatsData.setStatsMinute(it);}{BrokerStatsItem it = new BrokerStatsItem();StatsSnapshot ss = statsItem.getStatsDataInHour();it.setSum(ss.getSum());it.setTps(ss.getTps());it.setAvgpt(ss.getAvgpt());brokerStatsData.setStatsHour(it);}{BrokerStatsItem it = new BrokerStatsItem();StatsSnapshot ss = statsItem.getStatsDataInDay();it.setSum(ss.getSum());it.setTps(ss.getTps());it.setAvgpt(ss.getAvgpt());brokerStatsData.setStatsDay(it);}response.setBody(brokerStatsData.encode());response.setCode(ResponseCode.SUCCESS);response.setRemark(null);return response;}

 

进入这个方法,从缓存中获取broker的状态数据,org.apache.rocketmq.store.stats.BrokerStatsManager#getStatsItemcode

 

 

public StatsItem getStatsItem(final String statsName, final String statsKey) {try {return this.statsTable.get(statsName).getStatsItem(statsKey);} catch (Exception e) {}return null;}

 

往上返回到这个方法org.apache.rocketmq.broker.processor.AdminBrokerProcessor#ViewBrokerStatsData结束。orm

 

说在最后blog

本次解析仅表明我的观点,仅供参考。get

 

加入技术微信群源码

钉钉技术群it

相关文章
相关标签/搜索