public class HttpNettyClient
extends java.lang.Object
implements com.linkedin.r2.transport.common.bridge.client.TransportClient
TransportClient| Constructor and Description |
|---|
HttpNettyClient(io.netty.channel.EventLoopGroup eventLoopGroup,
java.util.concurrent.ScheduledExecutorService scheduler,
java.util.concurrent.ExecutorService callbackExecutor,
ChannelPoolManager channelPoolManager,
ChannelPoolManager sslChannelPoolManager,
com.linkedin.r2.transport.http.common.HttpProtocolVersion protocolVersion,
com.linkedin.util.clock.Clock clock,
long requestTimeout,
long streamingTimeout,
long shutdownTimeout)
Creates a new instance of
HttpNettyClient. |
| Modifier and Type | Method and Description |
|---|---|
static java.net.SocketAddress |
resolveAddress(com.linkedin.r2.message.Request request,
com.linkedin.r2.message.RequestContext requestContext)
Resolves the IP Address from the URI host
|
static long |
resolveRequestTimeout(com.linkedin.r2.message.RequestContext context,
long requestTimeout)
Resolves the request timeout based on the client configured timeout, request timeout, and preemptive
request timeout rate.
|
void |
restRequest(com.linkedin.r2.message.rest.RestRequest request,
com.linkedin.r2.message.RequestContext requestContext,
java.util.Map<java.lang.String,java.lang.String> wireAttrs,
com.linkedin.r2.transport.common.bridge.common.TransportCallback<com.linkedin.r2.message.rest.RestResponse> callback) |
void |
shutdown(com.linkedin.common.callback.Callback<com.linkedin.common.util.None> callback) |
void |
streamRequest(com.linkedin.r2.message.stream.StreamRequest request,
com.linkedin.r2.message.RequestContext requestContext,
java.util.Map<java.lang.String,java.lang.String> wireAttrs,
com.linkedin.r2.transport.common.bridge.common.TransportCallback<com.linkedin.r2.message.stream.StreamResponse> callback) |
public HttpNettyClient(io.netty.channel.EventLoopGroup eventLoopGroup,
java.util.concurrent.ScheduledExecutorService scheduler,
java.util.concurrent.ExecutorService callbackExecutor,
ChannelPoolManager channelPoolManager,
ChannelPoolManager sslChannelPoolManager,
com.linkedin.r2.transport.http.common.HttpProtocolVersion protocolVersion,
com.linkedin.util.clock.Clock clock,
long requestTimeout,
long streamingTimeout,
long shutdownTimeout)
HttpNettyClient.eventLoopGroup - Non-blocking event loop group implementation for selectors and channelscallbackExecutor - Executor service for executing user callbacks. The executor must be provided
because user callbacks can potentially be blocking. If executed with the
event loop group, threads might be blocked and cause channels to hang.channelPoolManager - Channel pool manager for non-SSL channelssslChannelPoolManager - Channel pool manager for SSL channelsprotocolVersion - HTTP version the client uses to send requests and receive responsesclock - Clock to get current timerequestTimeout - Time in milliseconds before an error response is returned in the callback
with a TimeoutExceptionshutdownTimeout - Client shutdown timeoutpublic void restRequest(com.linkedin.r2.message.rest.RestRequest request,
com.linkedin.r2.message.RequestContext requestContext,
java.util.Map<java.lang.String,java.lang.String> wireAttrs,
com.linkedin.r2.transport.common.bridge.common.TransportCallback<com.linkedin.r2.message.rest.RestResponse> callback)
restRequest in interface com.linkedin.r2.transport.common.bridge.client.TransportClientpublic void streamRequest(com.linkedin.r2.message.stream.StreamRequest request,
com.linkedin.r2.message.RequestContext requestContext,
java.util.Map<java.lang.String,java.lang.String> wireAttrs,
com.linkedin.r2.transport.common.bridge.common.TransportCallback<com.linkedin.r2.message.stream.StreamResponse> callback)
streamRequest in interface com.linkedin.r2.transport.common.bridge.client.TransportClientpublic void shutdown(com.linkedin.common.callback.Callback<com.linkedin.common.util.None> callback)
shutdown in interface com.linkedin.r2.transport.common.bridge.client.TransportClientpublic static long resolveRequestTimeout(com.linkedin.r2.message.RequestContext context,
long requestTimeout)
context - Request contextrequestTimeout - client configured timeoutpublic static java.net.SocketAddress resolveAddress(com.linkedin.r2.message.Request request,
com.linkedin.r2.message.RequestContext requestContext)
throws java.net.UnknownHostException,
UnknownSchemeException
request - Request objectrequestContext - Request's contextjava.net.UnknownHostExceptionUnknownSchemeException