我们使用RaspPi作为服务器平台从中导出一些数据。因此,RaspPi具有有限的资源,我们希望限制例如的连接数。 16。 我们怎么能用Netty 4做到这一点?
我们没有在github上找到针对netty 4的netty 4的开箱即用解决方案(参见:Limit number of connections per IP on Netty)。
是否可以扩展ChannelInboundHandlerAdapter
并简单地计算活动连接的数量以及最大值。到达每个新连接上调用close(),如下所示:
private final AtomicInteger activeConnections = new AtomicInteger();
@Override
public void channelActive(ChannelHandlerContext ctx) {
if (activeConnections.get()<16)
activeConnections.incrementAndGet();
else
ctx.close();
}
@Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
activeConnections.decrementAndGet();
}