Webサーバーの開発におけるさまざまなアプローチは何ですか? (1)マルチスレッド(2)イベントループがあると思いますが、他に何かありますか?各アプローチの長所と短所は何ですか?あなたはいつそれぞれを使いますか?それぞれの近似に対して特定のimplをリストできますか?Webサーバーの開発におけるさまざまなアプローチは何ですか?
答えて
ノンブロッキングI/Oを追加する必要があります。 Nettyをご覧ください。
異なるアプローチが可能:
シングルスレッド:すべての接続が 接続およびプロセスについては、「リッスン」と待っては をrequests.Itという単一のスレッドによって処理されますが、実装が簡単であるが、それはありますそれは は一度
マルチスレッドでの要求にサービスを提供できるよう、ほとんど役に立たないサーバー:サーバーが要求をリッスンし、各着信 要求はit.Soに各クライアントを処理するために、新しいスレッドに割り当てられている 接続は専用のスレッドで処理されます。 ( 1とは違って)このアプローチは、クライアント要求の同時処理をサポートしていますが、それぞれの新しい要求がサーバー で新しいスレッドを作成し、これは、サーバが 制限
にヒットするresources.Eventuallyがかかるので、うまくない 規模を行います
マルチスレッドプール:(2)と同じ考え方ですが、新しい着信要求を処理するための新しい スレッドを作成する代わりに、スレッドプール からのスレッドが使用されます。スレッドは、後で の再利用のために作成され、プールに置かれます。これは、複数のクライアント要求をサポートするうえで非常に適しており、 標準アプローチです。 Tomcatはこのように動作します。
イベントキュー:各受信要求はキューに入れられ、 はキューの要求を処理するバックグラウンドスレッドによって処理されます。それは ノンブロッキングであり、このタイプの非同期処理もまた のスケールになります。正直なところ私はそれが のパフォーマンスで(3)よりも良いかどうかわかりません。これはTomcatがこれを使用して設定できると思います NIOアーキテクチャ
G-WANミックスのようないくつかのサーバーマルチスレッド・プールとイベントキュー、サーバは多くの接続を処理各スレッドでCPUコアを飽和させます。
私はこのプロジェクトの開発に携わっています。
- 1. Java EEセッションレプリケーションのさまざまなアプローチは何ですか?
- 2. ソースコントロール分岐のさまざまなアプローチ
- 3. Webサービスからのさまざまな種類の応答は何ですか?
- 4. WEBサービスを利用するさまざまな方法は何ですか
- 5. アンドロイドのさまざまなタイムゾーンの時計機能を開発するのに助けが必要ですか?
- 6. ウェブサイトやアプリの開発にはさまざまな開発者が必要ですか?
- 7. iOSゲーム開発用のさまざまなフレームワークの違いは?
- 8. フロントエンド開発における `楽観updates`は何である
- 9. iOS開発におけるGDB上のLLDBの利点は何ですか?
- 10. ASP.NET Web開発サーバー
- 11. Web開発におけるキャッシュのメリットとデメリットPHPでは、どのようにデータベースに影響しますか?
- 12. VS2010のさまざまなコマンドシェルの違いは何ですか?
- 13. Androidのさまざまなレイアウトに異なるプログラミングロジックを分ける最善の方法は何ですか?
- 14. さまざまな種類のケースは何ですか?
- 15. さまざまなAndroidテストケースクラスの違いは何ですか?
- 16. さまざまなHTTPメソッドの違いは何ですか?
- 17. さまざまなAccuRevのバージョン番号は何ですか?
- 18. Web開発における一時ファイルの管理
- 19. リンク、コントローラー、およびコンパイル機能に含まれるさまざまな注射剤は何ですか?
- 20. さまざまなプログラミング言語のクライアントをサーバーでテストする最良の方法は何ですか?
- 21. Webサーバー開発のヒント
- 22. WSPBuilderのさまざまなスコープは何をしますか?
- 23. EclipseのさまざまなAndroidビューは何をしますか?
- 24. Web開発における非同期呼び出し
- 25. Android開発:さまざまなデバイスに合わせてスケールする
- 26. 春のWebサービス応答は、さまざまなWebサービス(Java)の
- 27. Pythonのデスクトップアプリケーション開発における
- 28. NDD開発におけるDDDのコンセプト
- 29. さまざまなサーバー環境でピクセルが異なる
- 30. Web開発にはどのようなO/Sが好まれますか?その理由は何ですか?
(通常は)イベントループとnioが一緒になります... – DuduAlul