private Invoker findInvoker(String interfaceName, String uniqueId) {
        this.readLock.lock();
        try {
            if (this.uniqueIdInvokerMap.isEmpty()) {
                // invoker map is empty, can not find any invoker
                throw new SofaRpcException(RpcErrorType.SERVER_NOT_FOUND_INVOKER, "Cannot find service of [" +
                    interfaceName + "] with uniqueId [" + uniqueId + "]");
            }

            // try to find invoker
            Invoker invoker = this.uniqueIdInvokerMap.get(uniqueId);
            if (null == invoker) {
                if (StringUtils.isNotEmpty(uniqueId)) {
                    // there has unique id in request, should not fallback.
                    throw new SofaRpcException(RpcErrorType.SERVER_NOT_FOUND_INVOKER, "Cannot find service of [" +
                        interfaceName + "] with uniqueId [" + uniqueId + "]");
                }

                if (this.uniqueIdInvokerMap.size() > 1) {
                    // can not find invoker and there was more than one invoker exists
                    // not sure which one to use, invoke fail.
                    throw new SofaRpcException(RpcErrorType.SERVER_NOT_FOUND_INVOKER, "Cannot find service of [" +
                        interfaceName + "] with uniqueId [" + uniqueId + "]");
                }

                // can not find invoker, but there was only one invoker, use it.
                invoker = this.uniqueIdInvokerMap.values().stream().findFirst().get();
            }

            return invoker;
        } finally {
            this.readLock.unlock();
        }
    }
get unique id from rpc invoke context

@return unique id from rpc invoke context
remoting/remoting-triple/src/main/java/com/alipay/sofa/rpc/server/triple/UniqueIdInvoker.java