@Override
    public GetPartMetaResponseM2C consumerGetPartMetaInfoC2M(GetPartMetaRequestC2M request,
            String rmtAddress,
            boolean overtls) throws Throwable {
        ProcessResult reslut = new ProcessResult();
        StringBuilder strBuff = new StringBuilder(512);
        GetPartMetaResponseM2C.Builder builder = GetPartMetaResponseM2C.newBuilder();
        if (!serverAuthHandler.identityValidUserInfo(request.getAuthInfo(), false, reslut)) {
            builder.setErrCode(reslut.getErrCode());
            builder.setErrMsg(reslut.getErrMsg());
            return builder.build();
        }
        if (!PBParameterUtils.checkClientId(request.getClientId(), strBuff, reslut)) {
            builder.setErrCode(reslut.getErrCode());
            builder.setErrMsg(reslut.getErrMsg());
            return builder.build();
        }
        final String clientId = (String) reslut.getRetData();
        if (!PBParameterUtils.checkGroupName(request.getGroupName(), strBuff, reslut)) {
            builder.setErrCode(reslut.getErrCode());
            builder.setErrMsg(reslut.getErrMsg());
            return builder.build();
        }
        final String groupName = (String) reslut.getRetData();
        final long brokerConfigId = request.getBrokerConfigId();
        final long topicMetaInfoId = request.getTopicMetaInfoId();
        checkNodeStatus(clientId, strBuff);
        // get control object
        ConsumeGroupInfo consumeGroupInfo =
                consumerHolder.getConsumeGroupInfo(groupName);
        if (consumeGroupInfo == null) {
            builder.setErrCode(TErrCodeConstants.HB_NO_NODE);
            builder.setErrMsg(strBuff.append("Not found groupName ")
                    .append(groupName).append(" in holder!").toString());
            strBuff.delete(0, strBuff.length());
            return builder.build();
        }
        ConsumerInfo inConsumerInfo =
                consumeGroupInfo.getConsumerInfo(clientId);
        if (inConsumerInfo == null) {
            builder.setErrCode(TErrCodeConstants.HB_NO_NODE);
            builder.setErrMsg(strBuff.append("Not found client ").append(clientId)
                    .append(" in group(").append(groupName).append(")").toString());
            strBuff.delete(0, strBuff.length());
            return builder.build();
        }
        // heartbeat check
        try {
            heartbeatManager.updConsumerNode(getConsumerKey(groupName, clientId));
        } catch (HeartbeatException e) {
            builder.setErrCode(TErrCodeConstants.HB_NO_NODE);
            builder.setErrMsg(strBuff
                    .append("Update consumer node exception:")
                    .append(e.getMessage()).toString());
            return builder.build();
        }
        Tuple2<Long, List<String>> topicMetaInfoTuple = consumeGroupInfo.getTopicMetaInfo();
        if (topicMetaInfoTuple.getF0() == TBaseConstants.META_VALUE_UNDEFINED) {
            freshTopicMetaInfo(consumeGroupInfo, strBuff);
            topicMetaInfoTuple = consumeGroupInfo.getTopicMetaInfo();
        }
        builder.setTopicMetaInfoId(topicMetaInfoTuple.getF0());
        if (topicMetaInfoTuple.getF0() != topicMetaInfoId) {
            builder.addAllTopicMetaInfoList(topicMetaInfoTuple.getF1());
        }
        Tuple2<Long, Map<Integer, String>> brokerStaticInfo =
                brokerRunManager.getBrokerStaticInfo(overtls);
        builder.setBrokerConfigId(brokerStaticInfo.getF0());
        if (brokerConfigId != brokerStaticInfo.getF0()) {
            builder.addAllBrokerConfigList(brokerStaticInfo.getF1().values());
        }
        builder.setErrCode(TErrCodeConstants.SUCCESS);
        builder.setErrMsg("OK!");
        return builder.build();
    }
Client balance consumer get partition meta information with master

@param request
@param rmtAddress
@param overtls
@return close response
@throws Exception
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/TMaster.java