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, poolStrategyclientConfig, 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, isPoolEnabledconnect, getClientConfig, getLoadBalancerContext, getOrCreateRxClient, getProperty, getResourceForOptionalProperty, getResponseTimeOut, name, removeClient, shutdown, subscribeprotected 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)
LoadBalancingRxClientcreateRxClient 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>>