public static boolean isValidServiceTypeAndMethod(int serviceId,
            int methodId,
            final StringBuilder sBuilder) throws Exception {
        // #lizard forgives
        // First confirm the valid data according to the service ID according to the service ID.
        switch (serviceId) {
            case RpcConstants.RPC_SERVICE_TYPE_MASTER_SERVICE: {
                switch (methodId) {
                    case RpcConstants.RPC_MSG_MASTER_PRODUCER_REGISTER:
                    case RpcConstants.RPC_MSG_MASTER_PRODUCER_HEARTBEAT:
                    case RpcConstants.RPC_MSG_MASTER_PRODUCER_CLOSECLIENT:
                    case RpcConstants.RPC_MSG_MASTER_CONSUMER_REGISTER:
                    case RpcConstants.RPC_MSG_MASTER_CONSUMER_HEARTBEAT:
                    case RpcConstants.RPC_MSG_MASTER_CONSUMER_CLOSECLIENT:
                    case RpcConstants.RPC_MSG_MASTER_CONSUMER_REGISTER_V2:
                    case RpcConstants.RPC_MSG_MASTER_CONSUMER_HEARTBEAT_V2:
                    case RpcConstants.RPC_MSG_MASTER_CONSUMER_GET_PART_META:
                    case RpcConstants.RPC_MSG_MASTER_BROKER_REGISTER:
                    case RpcConstants.RPC_MSG_MASTER_BROKER_HEARTBEAT:
                    case RpcConstants.RPC_MSG_MASTER_BROKER_CLOSECLIENT: {
                        return true;
                    }
                    default: {
                        if (sBuilder != null) {
                            sBuilder.append("Unsupported method ").append(methodId)
                                    .append("in service type ").append(serviceId)
                                    .append("!");
                        }
                        return false;
                    }
                }
            }
            case RpcConstants.RPC_SERVICE_TYPE_BROKER_READ_SERVICE: {
                switch (methodId) {
                    case RpcConstants.RPC_MSG_BROKER_PRODUCER_REGISTER:
                    case RpcConstants.RPC_MSG_BROKER_PRODUCER_HEARTBEAT:
                    case RpcConstants.RPC_MSG_BROKER_PRODUCER_SENDMESSAGE:
                    case RpcConstants.RPC_MSG_BROKER_CONSUMER_REGISTER:
                    case RpcConstants.RPC_MSG_BROKER_CONSUMER_HEARTBEAT:
                    case RpcConstants.RPC_MSG_BROKER_CONSUMER_GETMESSAGE:
                    case RpcConstants.RPC_MSG_BROKER_CONSUMER_COMMIT:
                    case RpcConstants.RPC_MSG_BROKER_CONSUMER_CLOSE: {
                        return true;
                    }
                    default: {
                        if (sBuilder != null) {
                            sBuilder.append("Unsupported method ").append(methodId)
                                    .append("in service type ").append(serviceId)
                                    .append("!");
                        }
                        return false;
                    }
                }
            }
            case RpcConstants.RPC_SERVICE_TYPE_BROKER_WRITE_SERVICE: {
                switch (methodId) {
                    case RpcConstants.RPC_MSG_BROKER_PRODUCER_REGISTER:
                    case RpcConstants.RPC_MSG_BROKER_PRODUCER_HEARTBEAT:
                    case RpcConstants.RPC_MSG_BROKER_PRODUCER_SENDMESSAGE:
                    case RpcConstants.RPC_MSG_BROKER_PRODUCER_CLOSE: {
                        return true;
                    }
                    default: {
                        if (sBuilder != null) {
                            sBuilder.append("Unsupported method ").append(methodId)
                                    .append("in service type ").append(serviceId)
                                    .append("!");
                        }
                        return false;
                    }
                }
            }
            default: {
                if (sBuilder != null) {
                    sBuilder.append("Service Type is invalid!");
                }
                return false;
            }
        }
    }
Valid service type and method parameters

@param serviceId     the service id
@param methodId      the method id
@param sBuilder      the string buffer
@return              whether is valid content.
@throws Exception    the exception while processing.
inlong-tubemq/tubemq-core/src/main/java/org/apache/inlong/tubemq/corerpc/codec/PbEnDecoder.java