rocketmq源码解析之管理请求从broker中获取system topics

说在前面

管理请求 GET_SYSTEM_TOPIC_LIST_FROM_BROKER 获取broker中的system topic列表

 

源码解析

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

private RemotingCommand getSystemTopicListFromBroker(ChannelHandlerContext ctx, RemotingCommand request)
        throws RemotingCommandException {
        final RemotingCommand response = RemotingCommand.createResponseCommand(null);
//        查询system topic列表=》
        Set<String> topics = this.brokerController.getTopicConfigManager().getSystemTopic();
        TopicList topicList = new TopicList();
        topicList.setTopicList(topics);
//        消息json编码=》
        response.setBody(topicList.encode());
        response.setCode(ResponseCode.SUCCESS);
        response.setRemark(null);
        return response;
    }

进入到这个方法org.apache.rocketmq.broker.topic.TopicConfigManager#getSystemTopic

public Set<String> getSystemTopic() {
    return this.systemTopicList;
}

内存存储路径

private final Set<String> systemTopicList = new HashSet<String>();

往上返回到这个方法org.apache.rocketmq.remoting.protocol.RemotingSerializable#encode()对topic进行json编码

public byte[] encode() {
    final String json = this.toJson();
    if (json != null) {
        return json.getBytes(CHARSET_UTF8);
    }
    return null;
}

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

 

说在最后

本次解析仅代表个人观点,仅供参考。

 

加入技术微信群

钉钉技术群

转载于:https://my.oschina.net/u/3775437/blog/3094967

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值