Class DefaultClientChannelManager
java.lang.Object
com.netflix.zuul.netty.connectionpool.DefaultClientChannelManager
- All Implemented Interfaces:
ClientChannelManager
User: [email protected]
Date: 7/8/16
Time: 12:39 PM
-
Field Summary
-
Constructor Summary
ConstructorDescriptionDefaultClientChannelManager
(OriginName originName, com.netflix.client.config.IClientConfig clientConfig, com.netflix.spectator.api.Registry spectatorRegistry) DefaultClientChannelManager
(OriginName originName, com.netflix.client.config.IClientConfig clientConfig, com.netflix.zuul.resolver.Resolver<com.netflix.zuul.discovery.DiscoveryResult> resolver, com.netflix.spectator.api.Registry spectatorRegistry) -
Method Summary
Modifier and TypeMethodDescriptionio.netty.util.concurrent.Promise<PooledConnection>
acquire
(io.netty.channel.EventLoop eventLoop) io.netty.util.concurrent.Promise<PooledConnection>
acquire
(io.netty.channel.EventLoop eventLoop, Object key, CurrentPassport passport, AtomicReference<com.netflix.zuul.discovery.DiscoveryResult> selectedServer, AtomicReference<? super InetAddress> selectedHostAddr) protected OriginChannelInitializer
createChannelInitializer
(com.netflix.client.config.IClientConfig clientConfig, ConnectionPoolConfig connPoolConfig, com.netflix.spectator.api.Registry registry) protected IConnectionPool
createConnectionPool
(com.netflix.zuul.discovery.DiscoveryResult discoveryResult, SocketAddress serverAddr, NettyClientConnectionFactory clientConnFactory, PooledConnectionFactory pcf, ConnectionPoolConfig connPoolConfig, com.netflix.client.config.IClientConfig clientConfig, com.netflix.spectator.api.Counter createNewConnCounter, com.netflix.spectator.api.Counter createConnSucceededCounter, com.netflix.spectator.api.Counter createConnFailedCounter, com.netflix.spectator.api.Counter requestConnCounter, com.netflix.spectator.api.Counter reuseConnCounter, com.netflix.spectator.api.Counter connTakenFromPoolIsNotOpen, com.netflix.spectator.api.Counter closeAbovePoolHighWaterMarkCounter, com.netflix.spectator.api.Counter maxConnsPerHostExceededCounter, com.netflix.spectator.api.histogram.PercentileTimer connEstablishTimer, AtomicInteger connsInPool, AtomicInteger connsInUse) protected NettyClientConnectionFactory
createNettyClientConnectionFactory
(ConnectionPoolConfig connPoolConfig, io.netty.channel.ChannelInitializer<? extends io.netty.channel.Channel> clientConnInitializer) protected PooledConnectionFactory
createPooledConnectionFactory
(com.netflix.zuul.discovery.DiscoveryResult chosenServer, ClientChannelManager clientChannelMgr, com.netflix.spectator.api.Counter closeConnCounter, com.netflix.spectator.api.Counter closeWrtBusyConnCounter) int
int
int
protected ConcurrentHashMap<com.netflix.zuul.discovery.DiscoveryResult,
IConnectionPool> void
Gracefully shuts down a DefaultClientChannelManager by allowing in-flight requests to finish before closing the connections.void
init()
boolean
boolean
isCold()
protected SocketAddress
pickAddress
(com.netflix.zuul.discovery.DiscoveryResult chosenServer) Given a server chosen from the load balancer, pick the appropriate address to connect to.boolean
release
(PooledConnection conn) protected void
boolean
remove
(PooledConnection conn) static void
removeHandlerFromPipeline
(String handlerName, io.netty.channel.ChannelPipeline pipeline) void
shutdown()
protected void
-
Field Details
-
METRIC_PREFIX
- See Also:
-
IDLE_STATE_HANDLER_NAME
- See Also:
-
-
Constructor Details
-
DefaultClientChannelManager
public DefaultClientChannelManager(OriginName originName, com.netflix.client.config.IClientConfig clientConfig, com.netflix.spectator.api.Registry spectatorRegistry) -
DefaultClientChannelManager
public DefaultClientChannelManager(OriginName originName, com.netflix.client.config.IClientConfig clientConfig, com.netflix.zuul.resolver.Resolver<com.netflix.zuul.discovery.DiscoveryResult> resolver, com.netflix.spectator.api.Registry spectatorRegistry)
-
-
Method Details
-
init
public void init()- Specified by:
init
in interfaceClientChannelManager
-
createChannelInitializer
protected OriginChannelInitializer createChannelInitializer(com.netflix.client.config.IClientConfig clientConfig, ConnectionPoolConfig connPoolConfig, com.netflix.spectator.api.Registry registry) -
createNettyClientConnectionFactory
protected NettyClientConnectionFactory createNettyClientConnectionFactory(ConnectionPoolConfig connPoolConfig, io.netty.channel.ChannelInitializer<? extends io.netty.channel.Channel> clientConnInitializer) -
getConfig
- Specified by:
getConfig
in interfaceClientChannelManager
-
isAvailable
public boolean isAvailable()- Specified by:
isAvailable
in interfaceClientChannelManager
-
isCold
public boolean isCold()- Specified by:
isCold
in interfaceClientChannelManager
-
getInflightRequestsCount
public int getInflightRequestsCount()- Specified by:
getInflightRequestsCount
in interfaceClientChannelManager
-
shutdown
public void shutdown()- Specified by:
shutdown
in interfaceClientChannelManager
-
gracefulShutdown
public void gracefulShutdown()Gracefully shuts down a DefaultClientChannelManager by allowing in-flight requests to finish before closing the connections. Idle connections in the connection pools are closed, and any connections associated with an in-flight request will be closed upon trying to return the connection to the pool- Specified by:
gracefulShutdown
in interfaceClientChannelManager
-
release
- Specified by:
release
in interfaceClientChannelManager
-
updateServerStatsOnRelease
-
releaseHandlers
-
removeHandlerFromPipeline
public static void removeHandlerFromPipeline(String handlerName, io.netty.channel.ChannelPipeline pipeline) -
remove
- Specified by:
remove
in interfaceClientChannelManager
-
acquire
public io.netty.util.concurrent.Promise<PooledConnection> acquire(io.netty.channel.EventLoop eventLoop) - Specified by:
acquire
in interfaceClientChannelManager
-
acquire
public io.netty.util.concurrent.Promise<PooledConnection> acquire(io.netty.channel.EventLoop eventLoop, @Nullable Object key, CurrentPassport passport, AtomicReference<com.netflix.zuul.discovery.DiscoveryResult> selectedServer, AtomicReference<? super InetAddress> selectedHostAddr) - Specified by:
acquire
in interfaceClientChannelManager
-
createPooledConnectionFactory
protected PooledConnectionFactory createPooledConnectionFactory(com.netflix.zuul.discovery.DiscoveryResult chosenServer, ClientChannelManager clientChannelMgr, com.netflix.spectator.api.Counter closeConnCounter, com.netflix.spectator.api.Counter closeWrtBusyConnCounter) -
createConnectionPool
protected IConnectionPool createConnectionPool(com.netflix.zuul.discovery.DiscoveryResult discoveryResult, SocketAddress serverAddr, NettyClientConnectionFactory clientConnFactory, PooledConnectionFactory pcf, ConnectionPoolConfig connPoolConfig, com.netflix.client.config.IClientConfig clientConfig, com.netflix.spectator.api.Counter createNewConnCounter, com.netflix.spectator.api.Counter createConnSucceededCounter, com.netflix.spectator.api.Counter createConnFailedCounter, com.netflix.spectator.api.Counter requestConnCounter, com.netflix.spectator.api.Counter reuseConnCounter, com.netflix.spectator.api.Counter connTakenFromPoolIsNotOpen, com.netflix.spectator.api.Counter closeAbovePoolHighWaterMarkCounter, com.netflix.spectator.api.Counter maxConnsPerHostExceededCounter, com.netflix.spectator.api.histogram.PercentileTimer connEstablishTimer, AtomicInteger connsInPool, AtomicInteger connsInUse) -
getConnsInPool
public int getConnsInPool()- Specified by:
getConnsInPool
in interfaceClientChannelManager
-
getConnsInUse
public int getConnsInUse()- Specified by:
getConnsInUse
in interfaceClientChannelManager
-
getPerServerPools
protected ConcurrentHashMap<com.netflix.zuul.discovery.DiscoveryResult,IConnectionPool> getPerServerPools() -
pickAddress
Given a server chosen from the load balancer, pick the appropriate address to connect to.
-