public abstract class AbstractNettyStreamClient extends AbstractNettyClient<com.linkedin.r2.message.stream.StreamRequest,com.linkedin.r2.message.stream.StreamResponse>
TransportClient on top of Netty
libraries. Inheriting this class is a good starting point for protocol specific implementation
of TransportClient._scheduler, _state| Constructor and Description |
|---|
AbstractNettyStreamClient(ChannelPoolFactory factory,
java.util.concurrent.ScheduledExecutorService executor,
int requestTimeout,
int shutdownTimeout) |
AbstractNettyStreamClient(io.netty.channel.EventLoopGroup eventLoopGroup,
java.util.concurrent.ScheduledExecutorService executor,
long requestTimeout,
long shutdownTimeout,
java.util.concurrent.ExecutorService callbackExecutors,
com.linkedin.r2.transport.http.client.AbstractJmxManager jmxManager,
ChannelPoolManager channelPoolManager,
ChannelPoolManager sslChannelPoolManager)
Creates a new HttpNettyClient
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
doWriteRequest(com.linkedin.r2.message.stream.StreamRequest request,
com.linkedin.r2.message.RequestContext requestContext,
java.net.SocketAddress address,
java.util.Map<java.lang.String,java.lang.String> wireAttrs,
com.linkedin.r2.transport.http.client.TimeoutTransportCallback<com.linkedin.r2.message.stream.StreamResponse> callback,
long requestTimeout)
Writes the given request to the given socket address and invokes the callback after request is sent.
|
protected abstract void |
doWriteRequestWithWireAttrHeaders(com.linkedin.r2.message.Request request,
com.linkedin.r2.message.RequestContext requestContext,
java.net.SocketAddress address,
java.util.Map<java.lang.String,java.lang.String> wireAttrs,
com.linkedin.r2.transport.http.client.TimeoutTransportCallback<com.linkedin.r2.message.stream.StreamResponse> callback,
long requestTimeout) |
protected com.linkedin.r2.transport.common.bridge.common.TransportCallback<com.linkedin.r2.message.stream.StreamResponse> |
getExecutionCallback(com.linkedin.r2.transport.common.bridge.common.TransportCallback<com.linkedin.r2.message.stream.StreamResponse> callback)
Given a callback, returns the wrapped callback that will be executed on a custom executor
|
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) |
errorResponse, getChannelPoolManagerPerRequest, getPoolStats, shutdown, streamRequest, toExceptionpublic AbstractNettyStreamClient(io.netty.channel.EventLoopGroup eventLoopGroup,
java.util.concurrent.ScheduledExecutorService executor,
long requestTimeout,
long shutdownTimeout,
java.util.concurrent.ExecutorService callbackExecutors,
com.linkedin.r2.transport.http.client.AbstractJmxManager jmxManager,
ChannelPoolManager channelPoolManager,
ChannelPoolManager sslChannelPoolManager)
eventLoopGroup - The EventLoopGroup; it is the caller's responsibility to shut
it downexecutor - An executor; it is the caller's responsibility to shut it downrequestTimeout - Timeout, in ms, to get a connection from the pool or create oneshutdownTimeout - Timeout, in ms, the client should wait after shutdown is
initiated before terminating outstanding requestscallbackExecutors - An optional EventExecutorGroup to invoke user callbackjmxManager - A management class that is aware of the creation/shutdown event
of the underlying ChannelPoolManagerchannelPoolManager - channelPoolManager instance to retrieve http only channelssslChannelPoolManager - channelPoolManager instance to retrieve https only connectionpublic AbstractNettyStreamClient(ChannelPoolFactory factory, java.util.concurrent.ScheduledExecutorService executor, int requestTimeout, int shutdownTimeout)
public 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.TransportClientrestRequest in class AbstractNettyClient<com.linkedin.r2.message.stream.StreamRequest,com.linkedin.r2.message.stream.StreamResponse>protected com.linkedin.r2.transport.common.bridge.common.TransportCallback<com.linkedin.r2.message.stream.StreamResponse> getExecutionCallback(com.linkedin.r2.transport.common.bridge.common.TransportCallback<com.linkedin.r2.message.stream.StreamResponse> callback)
AbstractNettyClientgetExecutionCallback in class AbstractNettyClient<com.linkedin.r2.message.stream.StreamRequest,com.linkedin.r2.message.stream.StreamResponse>protected abstract void doWriteRequestWithWireAttrHeaders(com.linkedin.r2.message.Request request,
com.linkedin.r2.message.RequestContext requestContext,
java.net.SocketAddress address,
java.util.Map<java.lang.String,java.lang.String> wireAttrs,
com.linkedin.r2.transport.http.client.TimeoutTransportCallback<com.linkedin.r2.message.stream.StreamResponse> callback,
long requestTimeout)
protected void doWriteRequest(com.linkedin.r2.message.stream.StreamRequest request,
com.linkedin.r2.message.RequestContext requestContext,
java.net.SocketAddress address,
java.util.Map<java.lang.String,java.lang.String> wireAttrs,
com.linkedin.r2.transport.http.client.TimeoutTransportCallback<com.linkedin.r2.message.stream.StreamResponse> callback,
long requestTimeout)
AbstractNettyClientdoWriteRequest in class AbstractNettyClient<com.linkedin.r2.message.stream.StreamRequest,com.linkedin.r2.message.stream.StreamResponse>request - Request to sendrequestContext - Request contextaddress - Socket address to send the request towireAttrs - attributes that should be sent over the wire to the servercallback - Callback invoked after request is sent