public class SimpleChannelPool extends java.lang.Object implements ChannelPool
ChannelPool实现将创建新的Channel,如果有人试图获得Channel,但没有人在池中。
强制执行最大并发Channel的限制。
该实施使用ChannelPool中的Channel的 LIFO订单。
| Constructor and Description |
|---|
SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler)
使用
ChannelHealthChecker.ACTIVE创建一个新实例。
|
SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck)
创建一个新的实例。
|
SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck, boolean releaseHealthCheck)
创建一个新的实例。
|
SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck, boolean releaseHealthCheck, boolean lastRecentUsed)
创建一个新的实例。
|
| Modifier and Type | Method and Description |
|---|---|
Future<Channel> |
acquire()
获得 Channel从这个ChannelPool 。
|
Future<Channel> |
acquire(Promise<Channel> promise)
获得 Channel从这个ChannelPool 。
|
protected Bootstrap |
bootstrap()
返回该池将用于打开新连接的 Bootstrap 。
|
void |
close() |
protected ChannelFuture |
connectChannel(Bootstrap bs)
引导一个新的 Channel 。
|
protected ChannelPoolHandler |
handler()
返回将通知不同池操作的 ChannelPoolHandler 。
|
protected ChannelHealthChecker |
healthChecker()
返回 ChannelHealthChecker将用来检查一个Channel是健康的。
|
protected boolean |
offerChannel(Channel channel)
提供 Channel回到内部存储。
|
protected Channel |
pollChannel()
从内部存储中查询 Channel以重新使用它。
|
Future<java.lang.Void> |
release(Channel channel)
释放 Channel返回到此ChannelPool 。
|
Future<java.lang.Void> |
release(Channel channel, Promise<java.lang.Void> promise)
释放 Channel回到这个ChannelPool 。
|
protected boolean |
releaseHealthCheck()
指示此池在提供给池后是否会检查通道的健康状况。
|
public SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler)
ChannelHealthChecker.ACTIVE创建一个新实例。
bootstrap - 用于连接的Bootstrap
handler - 将通知不同池操作的ChannelPoolHandler
public SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck)
bootstrap - 用于连接的Bootstrap
handler - 将通知不同池操作的ChannelPoolHandler
healthCheck -该ChannelHealthChecker将用来检查一个Channel时从获得仍然是健康ChannelPool
public SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck, boolean releaseHealthCheck)
bootstrap - 用于连接的Bootstrap
handler - 将通知不同池操作的ChannelPoolHandler
healthCheck - ChannelHealthChecker将用于检查从ChannelPool获得的Channel是否仍然健康
releaseHealthCheck - 如果此参数设置为true ,则会在返回之前检查渠道健康状况;
否则,只有在采集时检查信道健康状况
public SimpleChannelPool(Bootstrap bootstrap, ChannelPoolHandler handler, ChannelHealthChecker healthCheck, boolean releaseHealthCheck, boolean lastRecentUsed)
bootstrap - 用于连接的Bootstrap
handler - 将通知不同池操作的ChannelPoolHandler
healthCheck -该ChannelHealthChecker将用来检查一个Channel时从获得仍然是健康ChannelPool
releaseHealthCheck - 如果此参数设置为true ,则会在返回之前检查渠道健康状况;
否则,只有在采集时检查信道健康状况
lastRecentUsed - true Channel选择将是LIFO,如果是false FIFO。
protected ChannelPoolHandler handler()
ChannelPoolHandler 。
ChannelPoolHandler将通知不同池操作
protected ChannelHealthChecker healthChecker()
ChannelHealthChecker将用来检查一个Channel是健康的。
ChannelHealthChecker将被用来检查一个Channel是健康的
protected boolean releaseHealthCheck()
true如果此池在将它们提供回池中之前将检查通道的健康状况,或者
false如果只在采集时检查通道健康状况
public final Future<Channel> acquire()
ChannelPool复制的描述
acquire在界面
ChannelPool
public Future<Channel> acquire(Promise<Channel> promise)
ChannelPool复制的描述
acquire在界面
ChannelPool
protected ChannelFuture connectChannel(Bootstrap bs)
Channel 。
默认实现使用Bootstrap.connect() ,子类可能会覆盖此。
这里传递的Bootstrap是通过Bootstrap.clone()克隆的,所以修改是安全的。
public final Future<java.lang.Void> release(Channel channel)
ChannelPool复制的描述
release在界面
ChannelPool
public Future<java.lang.Void> release(Channel channel, Promise<java.lang.Void> promise)
ChannelPool复制的描述
release在界面
ChannelPool
protected Channel pollChannel()
Channel以重新使用它。
如果没有Channel准备重新使用,这将返回null 。
子类可以覆盖pollChannel()和offerChannel(Channel) 。
请注意,这些方法的实现需要线程安全!
protected boolean offerChannel(Channel channel)
Channel回到内部存储。
这将返回true如果Channel可以添加, false其他。
子类可能会覆盖pollChannel()和offerChannel(Channel) 。
请注意,这些方法的实现需要线程安全!
public void close()
close在界面
ChannelPool
close在界面
java.io.Closeable
close在界面
java.lang.AutoCloseable
Copyright © 2008–2018 The Netty Project. All rights reserved.