public class LoadBalancingHttpClient<I,O> extends LoadBalancingRxClientWithPoolOptions<io.reactivex.netty.protocol.http.client.HttpClientRequest<I>,io.reactivex.netty.protocol.http.client.HttpClientResponse<O>,io.reactivex.netty.protocol.http.client.HttpClient<I,O>> implements io.reactivex.netty.protocol.http.client.HttpClient<I,O>
CompositePoolLimitDeterminationStrategy
that has a global limit and per server limit.Modifier and Type | Class and Description |
---|---|
static class |
LoadBalancingHttpClient.Builder<I,O> |
globalStrategy, idleConnectionEvictionMills, poolCleanerScheduler, poolEnabled, poolStrategy
clientConfig, defaultRetryHandler, eventSubject, lbContext, listener, pipelineConfigurator, rxClientCache, sslContextFactory
Modifier | Constructor and Description |
---|---|
protected |
LoadBalancingHttpClient(LoadBalancingHttpClient.Builder<I,O> builder) |
Modifier and Type | Method and Description |
---|---|
static <I,O> LoadBalancingHttpClient.Builder<I,O> |
builder() |
protected io.reactivex.netty.metrics.MetricEventsListener<? extends io.reactivex.netty.client.ClientMetricsEvent<?>> |
createListener(java.lang.String name) |
protected io.reactivex.netty.protocol.http.client.HttpClient<I,O> |
createRxClient(com.netflix.loadbalancer.Server server)
Create a client instance for this Server.
|
protected com.netflix.loadbalancer.reactive.ServerOperation<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> |
requestToOperation(io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request,
io.reactivex.netty.client.RxClient.ClientConfig rxClientConfig)
Convert an HttpClientRequest to a ServerOperation
|
protected static void |
setHostHeader(io.reactivex.netty.protocol.http.client.HttpClientRequest<?> request,
java.lang.String host) |
rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> |
submit(io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request)
Submit a request to server chosen by the load balancer to execute.
|
rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> |
submit(io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request,
com.netflix.client.RetryHandler errorHandler,
com.netflix.client.config.IClientConfig requestConfig)
Submit a request to server chosen by the load balancer to execute.
|
rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> |
submit(io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request,
io.reactivex.netty.client.RxClient.ClientConfig config)
Submit a request to server chosen by the load balancer to execute.
|
rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> |
submit(com.netflix.loadbalancer.Server server,
io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request) |
rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> |
submit(com.netflix.loadbalancer.Server server,
io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request,
com.netflix.client.config.IClientConfig requestConfig)
Submit a request to run on a specific server
|
getConnectionIdleTimeoutMillis, getMaxConcurrentRequests, getPoolStrategy, isPoolEnabled
connect, getClientConfig, getLoadBalancerContext, getOrCreateRxClient, getProperty, getResourceForOptionalProperty, getResponseTimeOut, name, removeClient, shutdown, subscribe
protected LoadBalancingHttpClient(LoadBalancingHttpClient.Builder<I,O> builder)
public static <I,O> LoadBalancingHttpClient.Builder<I,O> builder()
protected static void setHostHeader(io.reactivex.netty.protocol.http.client.HttpClientRequest<?> request, java.lang.String host)
public rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> submit(io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request)
Observable
if
there is no server available from load balancer.public rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> submit(io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request, io.reactivex.netty.client.RxClient.ClientConfig config)
Observable
if
there is no server available from load balancer.public rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> submit(com.netflix.loadbalancer.Server server, io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request, com.netflix.client.config.IClientConfig requestConfig)
server
- request
- requestConfig
- public rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> submit(io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request, com.netflix.client.RetryHandler errorHandler, com.netflix.client.config.IClientConfig requestConfig)
Observable
if
there is no server available from load balancer.errorHandler
- A handler to determine the load balancer retry logic. If null, the default one will be used.requestConfig
- An IClientConfig
to override the default configuration for the client. Can be null.public rx.Observable<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> submit(com.netflix.loadbalancer.Server server, io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request)
protected com.netflix.loadbalancer.reactive.ServerOperation<io.reactivex.netty.protocol.http.client.HttpClientResponse<O>> requestToOperation(io.reactivex.netty.protocol.http.client.HttpClientRequest<I> request, io.reactivex.netty.client.RxClient.ClientConfig rxClientConfig)
server
- request
- rxClientConfig
- protected io.reactivex.netty.protocol.http.client.HttpClient<I,O> createRxClient(com.netflix.loadbalancer.Server server)
LoadBalancingRxClient
createRxClient
in class LoadBalancingRxClient<io.reactivex.netty.protocol.http.client.HttpClientRequest<I>,io.reactivex.netty.protocol.http.client.HttpClientResponse<O>,io.reactivex.netty.protocol.http.client.HttpClient<I,O>>
protected io.reactivex.netty.metrics.MetricEventsListener<? extends io.reactivex.netty.client.ClientMetricsEvent<?>> createListener(java.lang.String name)
createListener
in class LoadBalancingRxClient<io.reactivex.netty.protocol.http.client.HttpClientRequest<I>,io.reactivex.netty.protocol.http.client.HttpClientResponse<O>,io.reactivex.netty.protocol.http.client.HttpClient<I,O>>