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.