I
- Client input typeO
- Client output typeT
- Specific RxClient derived typepublic abstract class LoadBalancingRxClient<I,O,T extends io.reactivex.netty.client.RxClient<I,O>>
extends java.lang.Object
implements io.reactivex.netty.client.RxClient<I,O>
Modifier and Type | Field and Description |
---|---|
protected com.netflix.client.config.IClientConfig |
clientConfig |
protected com.netflix.client.RetryHandler |
defaultRetryHandler |
protected io.reactivex.netty.metrics.MetricEventsSubject<io.reactivex.netty.client.ClientMetricsEvent<?>> |
eventSubject |
protected com.netflix.loadbalancer.LoadBalancerContext |
lbContext |
protected io.reactivex.netty.metrics.MetricEventsListener<? extends io.reactivex.netty.client.ClientMetricsEvent<?>> |
listener |
protected io.reactivex.netty.pipeline.PipelineConfigurator<O,I> |
pipelineConfigurator |
protected java.util.concurrent.ConcurrentMap<com.netflix.loadbalancer.Server,T> |
rxClientCache |
protected com.netflix.client.ssl.AbstractSslContextFactory |
sslContextFactory |
Constructor and Description |
---|
LoadBalancingRxClient(com.netflix.client.config.IClientConfig config,
com.netflix.client.RetryHandler defaultRetryHandler,
io.reactivex.netty.pipeline.PipelineConfigurator<O,I> pipelineConfigurator) |
LoadBalancingRxClient(com.netflix.loadbalancer.ILoadBalancer lb,
com.netflix.client.config.IClientConfig config,
com.netflix.client.RetryHandler defaultRetryHandler,
io.reactivex.netty.pipeline.PipelineConfigurator<O,I> pipelineConfigurator) |
Modifier and Type | Method and Description |
---|---|
rx.Observable<io.reactivex.netty.channel.ObservableConnection<O,I>> |
connect() |
protected abstract io.reactivex.netty.metrics.MetricEventsListener<? extends io.reactivex.netty.client.ClientMetricsEvent<?>> |
createListener(java.lang.String name) |
protected abstract T |
createRxClient(com.netflix.loadbalancer.Server server)
Create a client instance for this Server.
|
com.netflix.client.config.IClientConfig |
getClientConfig() |
com.netflix.loadbalancer.LoadBalancerContext |
getLoadBalancerContext() |
int |
getMaxConcurrentRequests() |
protected T |
getOrCreateRxClient(com.netflix.loadbalancer.Server server)
Look up the client associated with this Server.
|
protected <S> S |
getProperty(com.netflix.client.config.IClientConfigKey<S> key,
com.netflix.client.config.IClientConfig requestConfig,
S defaultValue)
Resolve the final property value from,
1.
|
protected java.net.URL |
getResourceForOptionalProperty(com.netflix.client.config.IClientConfigKey<java.lang.String> configKey) |
int |
getResponseTimeOut() |
java.lang.String |
name() |
protected T |
removeClient(com.netflix.loadbalancer.Server server)
Remove the client for this Server
|
void |
shutdown() |
rx.Subscription |
subscribe(io.reactivex.netty.metrics.MetricEventsListener<? extends io.reactivex.netty.client.ClientMetricsEvent<?>> listener) |
protected final java.util.concurrent.ConcurrentMap<com.netflix.loadbalancer.Server,T extends io.reactivex.netty.client.RxClient<I,O>> rxClientCache
protected final io.reactivex.netty.pipeline.PipelineConfigurator<O,I> pipelineConfigurator
protected final com.netflix.client.config.IClientConfig clientConfig
protected final com.netflix.client.RetryHandler defaultRetryHandler
protected final com.netflix.client.ssl.AbstractSslContextFactory sslContextFactory
protected final io.reactivex.netty.metrics.MetricEventsListener<? extends io.reactivex.netty.client.ClientMetricsEvent<?>> listener
protected final io.reactivex.netty.metrics.MetricEventsSubject<io.reactivex.netty.client.ClientMetricsEvent<?>> eventSubject
protected final com.netflix.loadbalancer.LoadBalancerContext lbContext
public LoadBalancingRxClient(com.netflix.client.config.IClientConfig config, com.netflix.client.RetryHandler defaultRetryHandler, io.reactivex.netty.pipeline.PipelineConfigurator<O,I> pipelineConfigurator)
public com.netflix.client.config.IClientConfig getClientConfig()
public int getResponseTimeOut()
public int getMaxConcurrentRequests()
protected <S> S getProperty(com.netflix.client.config.IClientConfigKey<S> key, @Nullable com.netflix.client.config.IClientConfig requestConfig, S defaultValue)
key
- requestConfig
- defaultValue
- protected java.net.URL getResourceForOptionalProperty(com.netflix.client.config.IClientConfigKey<java.lang.String> configKey)
protected abstract T createRxClient(com.netflix.loadbalancer.Server server)
server
- protected T getOrCreateRxClient(com.netflix.loadbalancer.Server server)
host
- port
- protected T removeClient(com.netflix.loadbalancer.Server server)
server
- protected abstract io.reactivex.netty.metrics.MetricEventsListener<? extends io.reactivex.netty.client.ClientMetricsEvent<?>> createListener(java.lang.String name)
public void shutdown()
public java.lang.String name()
public rx.Subscription subscribe(io.reactivex.netty.metrics.MetricEventsListener<? extends io.reactivex.netty.client.ClientMetricsEvent<?>> listener)
subscribe
in interface io.reactivex.netty.metrics.MetricEventsPublisher<io.reactivex.netty.client.ClientMetricsEvent<?>>
public final com.netflix.loadbalancer.LoadBalancerContext getLoadBalancerContext()