4

私はこれに慣れていないため、経験豊富な netty 、 tomcat ユーザーにとって私の質問が素朴すぎるように思われる場合は申し訳ありません。

Tomcat 内のスプリング (ポート 8080 で実行) を介して構成された Netty websocket サーバー (サンプル コードを使用し、ポート 8090 で実行) を実行しています。私は両方のスレッドモデルと全体的な仕組みを理解しようとしています。

私が理解しているように、デフォルトのTomcatはmaxThreads = 200(アクティブなスレッドの最大数)を設定します。netty は Boss スレッドを使用してソケットを作成および接続/バインドし、それらを実際の非同期 I/O を行うワーカー スレッドに渡します。

今私は理解しようとしています:

  • Netty によって使用されるスレッドが tomcat プールから取得され、アクティブなスレッドの数が減少する場合) ?

  • Websocket 接続ごとに個別のスレッドが割り当てられ、使用されます (Websocket の実装についてはよくわかりませんが、これに対する答えはノーであるべきだと思います)。

  • 全体として、webapp および websocket サーバーに接続する同時クライアントの数にどのような影響がありますか?

編集 :

それに応じて、weboscket サーバーをコーディングする際に留意すべき特定のポイントはありますか?

4

1 に答える 1

5

Netty では、Executor をコンストラクターに渡すことで ThreadPool を指定します。したがって、Tomcat で使用するものと同じプールを使用しない限り、使用可能なスレッドに影響を与えることはありません。

Netty の Webseocket 実装は、その NIO トランスポートで使用できます。この場合、接続間で多数のスレッドを共有します。したがって、接続からスレッドへの 1:1 のマッピングはありません。

于 2012-07-13T05:42:16.940 に答える