ねえ、マルチスレッドに関する質問があります。まず、DispatcherServlet/DispatcherPorletのインスタンスはいくつありますか?それは常に唯一のものですか? 1秒間に10件のリクエストがあったとしても?デフォルトでシングルトンであるサービスはどうでしょうか?もし、検証のための検証サービスを提供するためにhandlerに注入されたvalidationService beanがシングルトン(デフォルト)であれば、それはシングルトンであり、場合によっては再インスタンス化されないという事実に頼ることができますか?高負荷のスプリングシングルトンビーンズ
答えて
これは興味深い質問です。
this previous questionで説明したように、コンテナは1つのサーブレットインスタンスのインスタンス化のみが許可されています。この場合、1つのスプリングコンテキストと1つのシングルトンが保証されます。
以前のバージョンのServlet仕様では何が起こるのですか。この動作を明示的に指定するのは不確実です。
実際には、コンテナは1つのサーブレットインスタンスをインスタンス化するだけです。したがって、1つのアプリコンテキストのみを取得すると仮定することは安全です。
負荷に応じて、サーブレットコンテナは、サーブレットインスタンスの数を作成し、開発者はそのを制御することはできません。しかし、ほとんどの場合、コンテナは各サーブレットの単一のインスタンスを維持します(サーブレットはスレッドセーフであるはずです)。
豆は、Webアプリケーションごとに1つのシングルトンです。つまり、Springアプリケーションコンテキストはサーブレットコンテキストに格納されます(WebApplicationContextUtils.getWebApplicationContext(ServletContext)でアクセスできます)。
信頼性について:はい、1つのSpringアプリケーションコンテキストのスコープでには、各シングルトンBeanのインスタンスが1つしかないことに頼っている。
しかし、ここでは衝突があります。サーブレットコンテナが負荷の高いインスタンスを多数作成する場合、シングルトンDispactherServletへの参照を持つか、DispatcherServletのインスタンスが各コンテナサーブレットに対して作成され、 DispatcherServlet afaik(別途想像することはできません)ごとにハンドルがなければ可能です。ディスパッチャーサーブレットごとにハンドラがある場合、ハンドラと同じくらい多くのSpringアプリケーションコンテキストが必要です。 – lisak
あなたは自分の応答を慎重に読んでいないようです。私はSpring ApplicationContext Per Servletインスタンスが1つあるとは言いませんでした。どれくらいのサーブレット・インスタンスがあるかにかかわらず、定義済みの異なるDispatcherServlet(2つ以上を定義できます)に関わらず、1つのコンテキスト当たりのWE WEB APPLICATIONがあります。 –
実際には、Spring ApplicationContext PER SERVLET INSTANCEが1つあります(もちろんWebアプリケーション内にあります)。コンテナはシングルトンサーブレットにリクエストを委譲します。もちろん、複数のDispatcherを定義することはできますが、ディスパッチャを3つ定義するのではなく、1つのディスパッチャのインスタンスについて話しています...そして、常に1つのインスタンスしかありません – lisak
- 1. CPU高負荷()
- 2. 高負荷下でのシンハンギング
- 3. ColdFusion用の高負荷イベントゲートウェイ
- 4. 負荷の高いNginxステータスコードメトリック
- 5. Php7.0-fpm高負荷CPU
- 6. CPU高負荷とフリーRAM
- 7. 高速負荷行列[numpyの/ Javaの]
- 8. 502高負荷でのゲートウェイエラー(nginx/php-fpm)
- 9. asp.net高負荷SMS /電子メールスケジューラのアーキテクチャ
- 10. IISのプロセス負荷が高い
- 11. システム負荷とユーザー負荷
- 12. Ruby on Rails。高負荷。建築実践
- 13. IIS CPU負荷が高い:GetMetaDataInternalInterfaceFromPublic + 0x935c
- 14. 負荷テストツールの負荷テスト機能
- 15. 負荷クラスは、
- 16. VSTS負荷テストレポート
- 17. RMI負荷テストツール?
- 18. 負荷テーブル列
- 19. 負荷IFRAME
- 20. パフォーマンス/負荷/ストレステストオーケストレーションレイヤー
- 21. 負荷バランス
- 22. 負荷値
- 23. 負荷は()ダイアログ
- 24. 負荷ビデオ
- 25. は負荷
- 26. 負荷イメージが
- 27. 負荷QRコードリンク
- 28. アンドロイド:負荷が
- 29. アンギュラルート - 負荷
- 30. Pytorch負荷モデル
TomcatがSingletonサーブレットのインスタンスをインスタンス化することは知っていましたが、Jetty以外のものは一度も使用していませんでした。 – lisak