Class SimpleChannelPool
java.lang.Object
io.netty.channel.pool.SimpleChannelPool
- All Implemented Interfaces:
ChannelPool, Closeable, AutoCloseable
- Direct Known Subclasses:
FixedChannelPool
Simple
ChannelPool implementation which will create new Channels if someone tries to acquire
a Channel but none is in the pool atm. No limit on the maximal concurrent Channels is enforced.
This implementation uses LIFO order for Channels in the ChannelPool.-
Constructor Summary
ConstructorsConstructorDescriptionSimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler) Creates a new instance using theChannelHealthChecker.ACTIVE.SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck) Creates a new instance.SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck, boolean releaseHealthCheck) Creates a new instance.SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck, boolean releaseHealthCheck, boolean lastRecentUsed) Creates a new instance. -
Method Summary
Modifier and TypeMethodDescriptionacquire()Acquire aChannelfrom thisChannelPool.Acquire aChannelfrom thisChannelPool.protected BootstrapReturns theBootstrapthis pool will use to open new connections.voidclose()Closes the pool in an async manner.protected ChannelFutureBootstrap a newChannel.protected ChannelPoolHandlerhandler()Returns theChannelPoolHandlerthat will be notified for the different pool actions.protected ChannelHealthCheckerReturns theChannelHealthCheckerthat will be used to check if aChannelis healthy.protected booleanofferChannel(Channel channel) Offer aChannelback to the internal storage.protected ChannelPoll aChannelout of the internal storage to reuse it.Release aChannelback to thisChannelPool.Release aChannelback to thisChannelPool.protected booleanIndicates whether this pool will check the health of channels before offering them back into the pool.
-
Constructor Details
-
SimpleChannelPool
Creates a new instance using theChannelHealthChecker.ACTIVE.- Parameters:
bootstrap- theBootstrapthat is used for connectionshandler- theChannelPoolHandlerthat will be notified for the different pool actions
-
SimpleChannelPool
public SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck) 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 theChannelPool
-
SimpleChannelPool
public SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck, 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 theChannelPoolreleaseHealthCheck- will check channel health before offering back if this parameter set totrue; otherwise, channel health is only checked at acquisition time
-
SimpleChannelPool
public SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck, 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 theChannelPoolreleaseHealthCheck- will check channel health before offering back if this parameter set totrue; otherwise, channel health is only checked at acquisition timelastRecentUsed-trueChannelselection will be LIFO, iffalseFIFO.
-
-
Method Details
-
bootstrap
-
handler
Returns theChannelPoolHandlerthat will be notified for the different pool actions.- Returns:
- the
ChannelPoolHandlerthat will be notified for the different pool actions
-
healthChecker
Returns theChannelHealthCheckerthat will be used to check if aChannelis healthy.- Returns:
- the
ChannelHealthCheckerthat will be used to check if aChannelis healthy
-
releaseHealthCheck
protected boolean releaseHealthCheck()Indicates whether this pool will check the health of channels before offering them back into the pool.- Returns:
trueif this pool will check the health of channels before offering them back into the pool, orfalseif channel health is only checked at acquisition time
-
acquire
Description copied from interface:ChannelPoolAcquire aChannelfrom thisChannelPool. The returnedFutureis notified once the acquire is successful and failed otherwise. Its important that an acquired is always released to the pool again, even if theChannelis explicitly closed..- Specified by:
acquirein interfaceChannelPool
-
acquire
Description copied from interface:ChannelPoolAcquire aChannelfrom thisChannelPool. The givenPromiseis notified once the acquire is successful and failed otherwise. Its important that an acquired is always released to the pool again, even if theChannelis explicitly closed..- Specified by:
acquirein interfaceChannelPool
-
connectChannel
Bootstrap a newChannel. The default implementation usesBootstrap.connect(), sub-classes may override this.The
Bootstrapthat is passed in here is cloned viaBootstrap.clone(), so it is safe to modify. -
release
Description copied from interface:ChannelPoolRelease aChannelback to thisChannelPool. The returnedFutureis notified once the release is successful and failed otherwise. When failed theChannelwill automatically closed.- Specified by:
releasein interfaceChannelPool
-
release
Description copied from interface:ChannelPoolRelease aChannelback to thisChannelPool. The givenPromiseis notified once the release is successful and failed otherwise. When failed theChannelwill automatically closed.- Specified by:
releasein interfaceChannelPool
-
pollChannel
Poll aChannelout of the internal storage to reuse it. This will returnnullif noChannelis ready to be reused. Sub-classes may overridepollChannel()andofferChannel(Channel). Be aware that implementations of these methods needs to be thread-safe! -
offerChannel
Offer aChannelback to the internal storage. This will returntrueif theChannelcould be added,falseotherwise. Sub-classes may overridepollChannel()andofferChannel(Channel). Be aware that implementations of these methods needs to be thread-safe! -
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceChannelPool- Specified by:
closein interfaceCloseable
-
closeAsync
-