8

我一直在查看Netty 网站上的代理服务器示例:

示例源代码处理程序有一个 volatile 变量

private volatile Channel outboundChannel;

它负责连接到另一台服务器以进行代理的通道。

这让我想知道这是否是为代理实现多个连接的正确且安全的方法。

我想允许多个连接(入站)连接到不同的出站,同时确保每个入站连接都唯一地链接到出站通道。

据我所知,Netty 会为每个连接生成一个新的管道。这是否意味着管道工厂新生成的处理程序专门用于新连接(通道)?

ps 如果我的 Netty 服务器有 1,000 个活动连接,这是否意味着有 1,000 个不同的管道?

4

1 回答 1

14

每个连接创建一个管道,但管道可能包含共享和独占处理程序。一些处理程序不保持状态,并且可以将单个实例插入到多个 [所有] 管道中。Netty 提供的可以共享的处理程序使用ChannelHandler.Sharable进行注释。请参阅本教程中标题为共享和独占通道处理程序的部分。

于 2013-02-14T10:06:23.233 回答