Proxy 如何在代理服务器上实现固定套接字计数->;服务器连接?
我读了netty代理的例子,() 我有两个要求Proxy 如何在代理服务器上实现固定套接字计数->;服务器连接?,proxy,netty,Proxy,Netty,我读了netty代理的例子,() 我有两个要求 我想在代理->服务器上使用固定计数连接。 在代理示例中,proxy->server conn.count等于client->proxy conn.count。 可能太多了 当客户端->代理连接结束时,代理->服务器连接必须保持有效 当建立新的客户端->代理连接时,重用代理->服务器连接 如何实现它?第一个要求可以通过使用存储频道来轻松实现。假设接受传入连接的ChannelHandler是一个singleton,则可以使用以下代码 // in
如何实现它?第一个要求可以通过使用存储频道来轻松实现。假设接受传入连接的
ChannelHandler
是一个singleton
,则可以使用以下代码
// initialize channelgroup in your singleton handler
ChannelGroup ALL_CONNECTIONS = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
...
@Override
public synchronized void channelActive(ChannelHandlerContext ctx) throws Exception
{
if(ALL_CONNECTIONS.size() > 100){
ctx.channel().close();// dont accept further connections
}else{
ALL_CONNECTIONS.add(ctx.channel());
// do whatever logic.
}
}
我认为您正在考虑将“连接池”作为第二个要求。如果是这样,我认为这不是一个好主意。因为,当一个新的客户端“连接”到您的服务器时,它总是一个新的连接,因为它来自您的网络之外。但是我不确定这一点,有更多知识的人可以回答。我认为,您需要的是一个具有连接池的客户端
HttpComponents和AsyncHttpClient都支持池,您可以看看AsyncHttpClient中的代码,它们也有一个基于netty的实现 谢谢你的回答。但我说的是TCP代理,不是HTTP。