public static boolean checkConsumerInputInfo(ConsumerInfo inConsumerInfo,
            MasterConfig masterConfig,
            MetaDataService defMetaDataService,
            BrokerRunManager brokerRunManager,
            StringBuilder strBuff,
            ProcessResult result) throws Exception {
        if (!inConsumerInfo.isRequireBound()) {
            result.setSuccResult(inConsumerInfo);
            return result.isSuccess();
        }
        if (TStringUtils.isBlank(inConsumerInfo.getSessionKey())) {
            result.setFailResult(TErrCodeConstants.BAD_REQUEST,
                    "[Parameter error] blank value of sessionKey!");
            return result.isSuccess();
        }
        inConsumerInfo.setSessionKey(inConsumerInfo.getSessionKey().trim());
        if (inConsumerInfo.getSourceCount() <= 0) {
            result.setFailResult(TErrCodeConstants.BAD_REQUEST,
                    "[Parameter error] totalSourceCount must over zero!");
            return result.isSuccess();
        }
        GroupResCtrlEntity offsetResetGroupEntity =
                defMetaDataService.getGroupCtrlConf(inConsumerInfo.getGroupName());
        if (masterConfig.isStartOffsetResetCheck()) {
            if (offsetResetGroupEntity == null) {
                result.setFailResult(TErrCodeConstants.BAD_REQUEST,
                        strBuff.append("[unauthorized subscribe] ConsumeGroup must be ")
                                .append("authorized by administrator before using bound subscribe")
                                .append(", please contact to administrator!").toString());
                strBuff.delete(0, strBuff.length());
                return result.isSuccess();
            }
        }
        int allowRate = (offsetResetGroupEntity != null
                && offsetResetGroupEntity.getAllowedBrokerClientRate() > 0)
                        ? offsetResetGroupEntity.getAllowedBrokerClientRate()
                        : masterConfig.getMaxGroupBrokerConsumeRate();
        int maxBrokerCount =
                brokerRunManager.getSubTopicMaxBrokerCount(inConsumerInfo.getTopicSet());
        int curBClientRate = (int) Math.floor(maxBrokerCount / inConsumerInfo.getSourceCount());
        if (curBClientRate > allowRate) {
            int minClientCnt = maxBrokerCount / allowRate;
            if (maxBrokerCount % allowRate != 0) {
                minClientCnt += 1;
            }
            result.setFailResult(TErrCodeConstants.BAD_REQUEST,
                    strBuff.append("[Parameter error] System requires at least ")
                            .append(minClientCnt).append(" clients to consume data together, ")
                            .append("please add client resources!").toString());
            return result.isSuccess();
        }
        result.setSuccResult(inConsumerInfo);
        return result.isSuccess();
    }
Check the validity of consumer parameters
 which specify partition boostrap Offset and use server-side balancing.

@param inConsumerInfo      the consumer information
@param masterConfig        the master configure
@param defMetaDataService  the cluster meta information
@param brokerRunManager    the broker running information
@param strBuff           the string buffer used to construct the result
@param result  the process result
@return the check result
inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/common/paramcheck/PBParameterUtils.java