我一直在查看Netty网站上的代理服务器示例:
示例源代码处理程序具有volatile变量
private volatile Channel outboundChannel;
Run Code Online (Sandbox Code Playgroud)
它负责连接到另一台服务器以进行代理的通道.
这让我想知道这是否是为代理的多个连接实现的正确和安全的方法.
我想允许多个连接(入站)连接到不同的outbounds,同时确保每个入站连接都唯一地链接到出站通道.
据我所知,Netty为每个连接生成一个新的管道.这是否意味着管道工厂新生成的处理程序专用于新连接(通道)?
ps如果我的Netty服务器有1,000个活动连接,这是否意味着有1,000个不同的管道?
Nic*_*las 10
每个连接创建一个管道,但管道可能包含共享和独占处理程序.一些处理程序不保持状态,并且可以将单个实例插入多个[所有]管道中.Netty提供的可以共享的处理程序使用ChannelHandler.Sharable进行注释.请参阅本教程中标题为" 共享和独占通道处理程序 "的部分.