public static RpcClient createClient(Configuration conf, String clusterId,
    SocketAddress localAddr, MetricsConnection metrics, Map<String, byte[]> connectionAttributes) {
    String rpcClientClass = getRpcClientClass(conf);
    return ReflectionUtils.instantiateWithCustomCtor(
      rpcClientClass, new Class[] { Configuration.class, String.class, SocketAddress.class,
        MetricsConnection.class, Map.class },
      new Object[] { conf, clusterId, localAddr, metrics, connectionAttributes });
  }
Creates a new RpcClient by the class defined in the configuration or falls back to
RpcClientImpl
@param conf      configuration
@param clusterId the cluster id
@param localAddr client socket bind address.
@param metrics   the connection metrics
@return newly created RpcClient
hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClientFactory.java