@Override
    public Object invokeSync(final Endpoint endpoint, final Object request, final InvokeContext ctx,
                             final long timeoutMs) throws InterruptedException, RemotingException {
        Requires.requireNonNull(endpoint, "endpoint");
        try {
            return this.rpcClient.invokeSync(endpoint.toString(), request, getBoltInvokeCtx(ctx), (int) timeoutMs);
        } catch (final com.alipay.remoting.rpc.exception.InvokeTimeoutException e) {
            throw new InvokeTimeoutException(e);
        } catch (final com.alipay.remoting.exception.RemotingException e) {
            if (ThrowUtil.getRootCause(e) instanceof ConnectException) {
                throw new ConnectionFailureException(e);
            }
            throw new RemotingException(e);
        }
    }
Bolt rpc client impl.

@author jiachun.fjc
jraft-core/src/main/java/com/alipay/sofa/jraft/rpc/impl/BoltRpcClient.java