Package com.linkedin.alpini.netty4.pool
Class EspressoFixedChannelPool
- java.lang.Object
-
- com.linkedin.alpini.netty4.pool.EspressoSimpleChannelPool
-
- com.linkedin.alpini.netty4.pool.EspressoFixedChannelPool
-
- All Implemented Interfaces:
ChannelPoolWithStats,io.netty.channel.pool.ChannelPool,java.io.Closeable,java.lang.AutoCloseable
- Direct Known Subclasses:
FixedChannelPoolImpl
public class EspressoFixedChannelPool extends EspressoSimpleChannelPool implements ChannelPoolWithStats
Forked from Netty's FixedChannelPool {ChannelPool} implementation that takes another {ChannelPool} implementation and enforce a maximum number of concurrent connections.
-
-
Constructor Summary
Constructors Constructor Description EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, int maxConnections)Creates a new instance using theChannelHealthChecker.ACTIVE.EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, int maxConnections, int maxPendingAcquires)Creates a new instance using theChannelHealthChecker.ACTIVE.EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, io.netty.channel.pool.ChannelHealthChecker healthCheck, io.netty.channel.pool.FixedChannelPool.AcquireTimeoutAction action, long acquireTimeoutMillis, int maxConnections, int maxPendingAcquires)Creates a new instance.EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, io.netty.channel.pool.ChannelHealthChecker healthCheck, io.netty.channel.pool.FixedChannelPool.AcquireTimeoutAction action, long acquireTimeoutMillis, int maxConnections, int maxPendingAcquires, boolean releaseHealthCheck)Creates a new instance.EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, io.netty.channel.pool.ChannelHealthChecker healthCheck, io.netty.channel.pool.FixedChannelPool.AcquireTimeoutAction action, long acquireTimeoutMillis, int maxConnections, int maxPendingAcquires, boolean releaseHealthCheck, boolean lastRecentUsed)Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description io.netty.util.concurrent.Future<io.netty.channel.Channel>acquire(io.netty.util.concurrent.Promise<io.netty.channel.Channel> promise)intacquiredChannelCount()Returns the number of acquired channels that this pool thinks it has.voidclose()io.netty.util.concurrent.Future<java.lang.Void>closeAsync()Closes the pool in an async manner.intgetAcquiredChannelCount()intgetMaxConnections()intgetMaxPendingAcquires()intgetPendingAcquireCount()voidincrementAcquiredChannelCount()booleanisClosed()booleanisPoolClosed()java.lang.Stringname()io.netty.util.concurrent.Future<java.lang.Void>release(io.netty.channel.Channel channel, io.netty.util.concurrent.Promise<java.lang.Void> promise)-
Methods inherited from class com.linkedin.alpini.netty4.pool.EspressoSimpleChannelPool
acquire, bootstrap, connectChannel, getAvailableChannels, handler, healthChecker, offerChannel, pollChannel, release, releaseHealthCheck
-
-
-
-
Constructor Detail
-
EspressoFixedChannelPool
public EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, int maxConnections)Creates a new instance using theChannelHealthChecker.ACTIVE.- Parameters:
bootstrap- theBootstrapthat is used for connectionshandler- theChannelPoolHandlerthat will be notified for the different pool actionsmaxConnections- the number of maximal active connections, once this is reached new tries to acquire aChannelwill be delayed until a connection is returned to the pool again.
-
EspressoFixedChannelPool
public EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, int maxConnections, int maxPendingAcquires)Creates a new instance using theChannelHealthChecker.ACTIVE.- Parameters:
bootstrap- theBootstrapthat is used for connectionshandler- theChannelPoolHandlerthat will be notified for the different pool actionsmaxConnections- the number of maximal active connections, once this is reached new tries to acquire aChannelwill be delayed until a connection is returned to the pool again.maxPendingAcquires- the maximum number of pending acquires. Once this is exceed acquire tries will be failed.
-
EspressoFixedChannelPool
public EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, io.netty.channel.pool.ChannelHealthChecker healthCheck, io.netty.channel.pool.FixedChannelPool.AcquireTimeoutAction action, long acquireTimeoutMillis, int maxConnections, int maxPendingAcquires)Creates a new instance.- Parameters:
bootstrap- theBootstrapthat is used for connectionshandler- theChannelPoolHandlerthat will be notified for the different pool actionshealthCheck- theChannelHealthCheckerthat will be used to check if aChannelis still healthy when obtain from the {ChannelPool}action- theFixedChannelPool.AcquireTimeoutActionto use ornullif non should be used. In this case {@param acquireTimeoutMillis} must be-1.acquireTimeoutMillis- the time (in milliseconds) after which an pending acquire must complete or theFixedChannelPool.AcquireTimeoutActiontakes place.maxConnections- the number of maximal active connections, once this is reached new tries to acquire aChannelwill be delayed until a connection is returned to the pool again.maxPendingAcquires- the maximum number of pending acquires. Once this is exceed acquire tries will be failed.
-
EspressoFixedChannelPool
public EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, io.netty.channel.pool.ChannelHealthChecker healthCheck, io.netty.channel.pool.FixedChannelPool.AcquireTimeoutAction action, long acquireTimeoutMillis, int maxConnections, int maxPendingAcquires, boolean releaseHealthCheck)Creates a new instance.- Parameters:
bootstrap- theBootstrapthat is used for connectionshandler- theChannelPoolHandlerthat will be notified for the different pool actionshealthCheck- theChannelHealthCheckerthat will be used to check if aChannelis still healthy when obtain from the {ChannelPool}action- theFixedChannelPool.AcquireTimeoutActionto use ornullif non should be used. In this case acquireTimeoutMillis must be-1.acquireTimeoutMillis- the time (in milliseconds) after which an pending acquire must complete or theFixedChannelPool.AcquireTimeoutActiontakes place.maxConnections- the number of maximal active connections, once this is reached new tries to acquire aChannelwill be delayed until a connection is returned to the pool again.maxPendingAcquires- the maximum number of pending acquires. Once this is exceed acquire tries will be failed.releaseHealthCheck- will check channel health before offering back if this parameter set totrue.
-
EspressoFixedChannelPool
public EspressoFixedChannelPool(io.netty.bootstrap.Bootstrap bootstrap, io.netty.channel.pool.ChannelPoolHandler handler, io.netty.channel.pool.ChannelHealthChecker healthCheck, io.netty.channel.pool.FixedChannelPool.AcquireTimeoutAction action, long acquireTimeoutMillis, int maxConnections, int maxPendingAcquires, boolean releaseHealthCheck, boolean lastRecentUsed)Creates a new instance.- Parameters:
bootstrap- theBootstrapthat is used for connectionshandler- theChannelPoolHandlerthat will be notified for the different pool actionshealthCheck- theChannelHealthCheckerthat will be used to check if aChannelis still healthy when obtain from the {ChannelPool}action- theFixedChannelPool.AcquireTimeoutActionto use ornullif non should be used. In this case acquireTimeoutMillis must be-1.acquireTimeoutMillis- the time (in milliseconds) after which an pending acquire must complete or theFixedChannelPool.AcquireTimeoutActiontakes place.maxConnections- the number of maximal active connections, once this is reached new tries to acquire aChannelwill be delayed until a connection is returned to the pool again.maxPendingAcquires- the maximum number of pending acquires. Once this is exceed acquire tries will be failed.releaseHealthCheck- will check channel health before offering back if this parameter set totrue.lastRecentUsed-trueChannelselection will be LIFO, iffalseFIFO.
-
-
Method Detail
-
isPoolClosed
public boolean isPoolClosed()
-
name
public java.lang.String name()
- Specified by:
namein interfaceChannelPoolWithStats
-
acquiredChannelCount
public int acquiredChannelCount()
Returns the number of acquired channels that this pool thinks it has.
-
incrementAcquiredChannelCount
public void incrementAcquiredChannelCount()
-
acquire
public io.netty.util.concurrent.Future<io.netty.channel.Channel> acquire(io.netty.util.concurrent.Promise<io.netty.channel.Channel> promise)
- Specified by:
acquirein interfaceio.netty.channel.pool.ChannelPool- Overrides:
acquirein classEspressoSimpleChannelPool
-
release
public io.netty.util.concurrent.Future<java.lang.Void> release(io.netty.channel.Channel channel, io.netty.util.concurrent.Promise<java.lang.Void> promise)- Specified by:
releasein interfaceio.netty.channel.pool.ChannelPool- Overrides:
releasein classEspressoSimpleChannelPool
-
getMaxConnections
public int getMaxConnections()
- Specified by:
getMaxConnectionsin interfaceChannelPoolWithStats
-
getMaxPendingAcquires
public int getMaxPendingAcquires()
- Specified by:
getMaxPendingAcquiresin interfaceChannelPoolWithStats
-
getAcquiredChannelCount
public int getAcquiredChannelCount()
- Specified by:
getAcquiredChannelCountin interfaceChannelPoolWithStats
-
getPendingAcquireCount
public int getPendingAcquireCount()
- Specified by:
getPendingAcquireCountin interfaceChannelPoolWithStats
-
isClosed
public boolean isClosed()
- Specified by:
isClosedin interfaceChannelPoolWithStats
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfaceio.netty.channel.pool.ChannelPool- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classEspressoSimpleChannelPool
-
closeAsync
public io.netty.util.concurrent.Future<java.lang.Void> closeAsync()
Closes the pool in an async manner.- Returns:
- Future which represents completion of the close task
-
-