java - 如何限制Netty客户端的传出连接数?

标签 java netty

有没有办法限制(或只是获取)netty 库(版本 4.x)中的传出连接数?

NioEventLoopGroup中有一个nThreads选项,它等于numberOfCpuCores * 2,但每个线程对多个连接使用一个Selector

附注这就是提出请求的方式。

Bootstrap b = new Bootstrap();
b.group(eventLoopGroup)
     .channel(NioSocketChannel.class)
     .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10000)
     .handler(new MyHandler());    
ChannelFuture cf = b.connect(host, port);
cf.addListener(new MyConnectionListener());

最佳答案

我认为您需要实现自己的 ChannelOutboundHandler。使用Semaphore来控制连接数。当 connect 获取时,当 disconnectcloseexceptionCaught 时释放。注意避免反复释放导致Semaphore为负值。

关于java - 如何限制Netty客户端的传出连接数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34227394/

相关文章:

java - 如何只查询某个属性

java - Netty是否暴露了ParentGroup的Backlog中的连接数?

java - 如何在没有事件监听器的情况下检查数据是否仅存在于 firebase 数据库中一次

java - Netty 4、Java 8 JVM fatal error (SIGSEGV) - PlatformDependent0.copyMemory

java - 如何跳过某些处理程序并直接转到netty中的特定处理程序

java - 为什么 netty Promise 监听器签名 future 的返回类型是 <?超V>

java - 如何为 http 代理配置 netty 管道

java - 如何从我的应用程序中启用网络和 GPS 位置?

java - 使用 Apache Sqoop 从 MySQL 导入数据 - 错误 : No manager for connect string

java - 如何使用spring的DefaultMessageListenerContainer进行手动提交?