8

私は、Netty Web サイトのプロキシ サーバーの例を見てきました。

サンプル ソース コード ハンドラーには volatile 変数があります。

private volatile Channel outboundChannel;

これは、プロキシ用に別のサーバーに接続するチャネルを処理します。

これにより、これがプロキシの複数の接続を実装するための正しく安全な方法であるかどうか疑問に思いました。

すべてのインバウンド接続がアウトバウンドチャネルに一意にリンクされていることを確認しながら、複数の接続 (インバウンド) が異なるアウトバウンドに接続できるようにしたいと考えています。

私の知る限り、Netty は接続ごとに新しいパイプラインを生成します。これは、パイプライン ファクトリによって新しく生成されたハンドラーが、新しい接続 (チャネル) 専用であることを意味しますか?

ps Netty サーバーへのアクティブな接続が 1,000 ある場合、これは 1,000 の異なるパイプラインがあることを意味しますか?

4

1 に答える 1

14

接続ごとに 1 つのパイプラインが作成されますが、パイプラインには共有ハンドラーと排他ハンドラーの両方が含まれる場合があります。一部のハンドラーは状態を保持せず、単一のインスタンスを複数の [すべての] パイプラインに挿入できます。共有できる Netty 提供のハンドラーには、ChannelHandler.Sharableの注釈が付けられます。このチュートリアルの「共有および排他チャネル ハンドラ」というセクションを参照してください。

于 2013-02-14T10:06:23.233 に答える