public <T> T getOrCreateService(Class<T> clazz,
            BrokerInfo brokerInfo,
            RpcConfig config) {
        String serviceKey = getServiceKey(brokerInfo.getBrokerAddr(), clazz.getName());
        ServiceHolder h = servicesCache.get(serviceKey);
        if (h != null) {
            return (T) h.getService();
        } else {
            if (!isRemoteAddrForbidden(brokerInfo.getBrokerAddr())) {
                ConnectionNode curNode = brokerQueue.get(serviceKey);
                if (curNode == null) {
                    brokerQueue.putIfAbsent(serviceKey,
                            new ConnectionNode(clazz, new NodeAddrInfo(brokerInfo.getHost(),
                                    brokerInfo.getPort(), brokerInfo.getBrokerAddr()), config));
                }
            }
            return null;
        }
    }
check is service empty

@return whether is empty
inlong-tubemq/tubemq-core/src/main/java/org/apache/inlong/tubemq/corerpc/RpcServiceFactory.java