src/main/java/com/alipay/remoting/rpc/RpcClient.java
public Object invokeSync(final String addr, final Object request, final int timeoutMillis)
                                                                                              throws RemotingException,
                                                                                              InterruptedException {
        return this.rpcRemoting.invokeSync(addr, request, null, timeoutMillis);
    }
public Object invokeSync(final String addr, final Object request, final int timeoutMillis)
                                                                                              throws RemotingException,
                                                                                              InterruptedException {
        return this.rpcRemoting.invokeSync(addr, request, null, timeoutMillis);
    }
Synchronous invocation using a string address, address format example - 127.0.0.1:12200?key1=value1&key2=value2 <br>
<p>
Notice:<br>
<ol>
<li><b>DO NOT modify the request object concurrently when this method is called.</b></li>
<li>When do invocation, use the string address to find a available connection, if none then create one.</li>
<ul>
<li>You can use {@link RpcConfigs#CONNECT_TIMEOUT_KEY} to specify connection timeout, time unit is milliseconds, e.g [127.0.0.1:12200?_CONNECTTIMEOUT=3000]
<li>You can use {@link RpcConfigs#CONNECTION_NUM_KEY} to specify connection number for each ip and port, e.g [127.0.0.1:12200?_CONNECTIONNUM=30]
<li>You can use {@link RpcConfigs#CONNECTION_WARMUP_KEY} to specify whether need warmup all connections for the first time you call this method, e.g [127.0.0.1:12200?_CONNECTIONWARMUP=false]
</ul>
<li>You should use {@link #closeConnection(String addr)} to close it if you want.
</ol>

@param addr
@param request
@param timeoutMillis
@return Object
@throws RemotingException
@throws InterruptedException