@Override
    public void initUrlArgs(Url url) {
        String connTimeoutStr = url.getProperty(RpcConfigs.CONNECT_TIMEOUT_KEY);
        int connTimeout = Configs.DEFAULT_CONNECT_TIMEOUT;
        if (StringUtils.isNotBlank(connTimeoutStr)) {
            if (StringUtils.isNumeric(connTimeoutStr)) {
                connTimeout = Integer.parseInt(connTimeoutStr);
            } else {
                throw new IllegalArgumentException(
                    "Url args illegal value of key [" + RpcConfigs.CONNECT_TIMEOUT_KEY
                            + "] must be positive integer! The origin url is ["
                            + url.getOriginUrl() + "]");
            }
        }
        url.setConnectTimeout(connTimeout);

        String protocolStr = url.getProperty(RpcConfigs.URL_PROTOCOL);
        byte protocol = RpcProtocol.PROTOCOL_CODE;
        if (StringUtils.isNotBlank(protocolStr)) {
            if (StringUtils.isNumeric(protocolStr)) {
                protocol = Byte.parseByte(protocolStr);
            } else {
                throw new IllegalArgumentException(
                    "Url args illegal value of key [" + RpcConfigs.URL_PROTOCOL
                            + "] must be positive integer! The origin url is ["
                            + url.getOriginUrl() + "]");
            }
        }
        url.setProtocol(protocol);

        String versionStr = url.getProperty(RpcConfigs.URL_VERSION);
        byte version = RpcProtocolV2.PROTOCOL_VERSION_1;
        if (StringUtils.isNotBlank(versionStr)) {
            if (StringUtils.isNumeric(versionStr)) {
                version = Byte.parseByte(versionStr);
            } else {
                throw new IllegalArgumentException(
                    "Url args illegal value of key [" + RpcConfigs.URL_VERSION
                            + "] must be positive integer! The origin url is ["
                            + url.getOriginUrl() + "]");
            }
        }
        url.setVersion(version);

        String connNumStr = url.getProperty(RpcConfigs.CONNECTION_NUM_KEY);
        int connNum = Configs.DEFAULT_CONN_NUM_PER_URL;
        if (StringUtils.isNotBlank(connNumStr)) {
            if (StringUtils.isNumeric(connNumStr)) {
                connNum = Integer.parseInt(connNumStr);
            } else {
                throw new IllegalArgumentException(
                    "Url args illegal value of key [" + RpcConfigs.CONNECTION_NUM_KEY
                            + "] must be positive integer! The origin url is ["
                            + url.getOriginUrl() + "]");
            }
        }
        url.setConnNum(connNum);

        String connWarmupStr = url.getProperty(RpcConfigs.CONNECTION_WARMUP_KEY);
        boolean connWarmup = false;
        if (StringUtils.isNotBlank(connWarmupStr)) {
            connWarmup = Boolean.parseBoolean(connWarmupStr);
        }
        url.setConnWarmup(connWarmup);
    }
@see com.alipay.remoting.RemotingAddressParser#initUrlArgs(Url)
src/main/java/com/alipay/remoting/rpc/RpcAddressParser.java