rocketmq 之namesrv(十七)mqclient admin请求处理更新和创建订阅组

更新和创建订阅组AdminBrokerProcessor#updateAndCreateSubscriptionGroup

AdminBrokerProcessor#processRequest#this.updateAndCreateSubscriptionGroup(ctx, request)

private RemotingCommand updateAndCreateSubscriptionGroup(ChannelHandlerContext ctx, RemotingCommand request)
        throws RemotingCommandException {
        final RemotingCommand response = RemotingCommand.createResponseCommand(null);

        log.info("updateAndCreateSubscriptionGroup called by {}", RemotingHelper.parseChannelRemoteAddr(ctx.channel()));

        /*从请求体获取订阅组配置*/
        SubscriptionGroupConfig config = RemotingSerializable.decode(request.getBody(), SubscriptionGroupConfig.class);
        if (config != null) {
            this.brokerController.getSubscriptionGroupManager().updateSubscriptionGroupConfig(config);
        }

        response.setCode(ResponseCode.SUCCESS);
        response.setRemark(null);
        return response;
    }
SubscriptionGroupManager#updateSubscriptionGroupConfig
public void updateSubscriptionGroupConfig(final SubscriptionGroupConfig config) {
        /*根据订阅组名称替换配置返回旧的订阅配置信息*/
        SubscriptionGroupConfig old = this.subscriptionGroupTable.put(config.getGroupName(), config);
        if (old != null) {
            log.info("update subscription group config, old: {} new: {}", old, config);
        } else {
            log.info("create new subscription group, {}", config);
        }

        /*版本+1*/
        this.dataVersion.nextVersion();

        /*持久化配置信息*/
        this.persist();
    }
发布了212 篇原创文章 · 获赞 64 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/qq_26400953/article/details/104638020