序文
SpringBoot フレームワークでは、Tomcat が最もよく使用されます。これは SpringBoot のデフォルトのコンテナー技術であり、Tomcat が組み込まれています。
同時に、SpringBoot は Undertow コンテナもサポートしています。Tomcat を Undertow に簡単に置き換えることができ、Undertow のパフォーマンスとメモリ使用量は Tomcat よりも優れています。では、Undertow テクノロジをどのように使用すればよいでしょうか? この記事では詳しく説明します。
SpringBoot の Tomcat コンテナ
SpringBoot は現在最も注目されている Java Web フレームワークと言えます。これにより、開発者は重い XML を使用する必要がなくなり、完全な Web サービスを数分で作成できるようになり、開発者の作業効率が大幅に向上します。Web プロジェクトの実行にはコンテナ テクノロジに依存する必要があるため、Web コンテナ テクノロジは Web プロジェクトの重要な部分です。
SpringBoot フレームワークでは、Tomcat が最もよく使用されます。これは SpringBoot のデフォルトのコンテナー技術であり、Tomcat が組み込まれています。
SpringBoot は Undertow を設定します
Java プログラマは、Web アプリケーションで最も一般的に使用されるコンテナ テクノロジである Tomcat テクノロジに精通している必要があります。私たちの初期の開発プロジェクトは、基本的に Tomcat の下でデプロイされ、実行されました。Tomcat コンテナーに加えて、SpringBoot ではどのようなコンテナー テクノロジを使用できますか?
そう、タイトルにもあるUndertowコンテナ技術です。SrpingBoot は Undertow テクノロジーを完全に継承しているため、次の図に示すように、Undertow の依存関係を導入するだけで済みます。
構成後、アプリケーションを起動すると、コンテナーが Undertow に置き換えられていることがわかりました。
では、なぜ Tomcat を Undertow テクノロジーに置き換える必要があるのでしょうか?
Tomcat と Undertow の長所と短所の比較
Tomcat は、Apache 基盤に基づいた軽量のサーブレット コンテナであり、サーブレットと JSP をサポートします。Tomcatは、Tomcat管理・制御プラットフォーム、セキュリティビューロー管理、TomcatバルブなどのWebサーバー特有の機能を備えています。Tomcat 自体には HTTP サーバーが含まれているため、別の Web サーバーとみなすこともできます。
ただし、Tomcat と Apache HTTP サーバーは同じものではなく、Apache HTTP サーバーは C 言語で実装された HTTP Web サーバーです。Tomcat は完全に無料であり、開発者に愛されています。
Undertow は Red Hat のオープンソース製品で、完全に Java 言語で開発されており、ブロッキング IO とノンブロッキング IO をサポートする柔軟で高性能な Web サーバーです。Undertow は Java 言語で開発されているため、Java プロジェクトに直接埋め込むことができます。同時に、Undertow はサーブレットと Web ソケットを完全にサポートし、同時実行性が高い状況でも非常に優れたパフォーマンスを発揮します。
Tomcat と Undertow を同じマシン構成でストレス テストしました。得られたテスト結果は次のとおりです。
QPS テスト結果の比較:
メモリ使用量の比較:
テストを通じて、Tomcat は同時実行性の高いシステムでは比較的弱いことがわかりました。同じマシン構成で、同じ数のリクエストをシミュレートすると、Undertow はパフォーマンスとメモリ使用量の点で最適です。また、Undertow の新しいバージョンではデフォルトで永続接続が使用されるため、同時スループットがさらに向上します。したがって、同時実行性の高いビジネス システムの場合は、Undertow が最適な選択です。
やっと
SpingBoot では、Tomcat を Http サービスとして使用することも、代わりに Undertow を使用することもできます。Undertow は、同時実行性の高いビジネス シナリオでは Tomcat よりも優れたパフォーマンスを発揮します。したがって、システムの同時リクエストが多い場合は、Undertow を使用すると、システムのパフォーマンスが大幅に向上することがわかります。
拡大
それだけでなく、市場には nginx、Weblogic、WebSphere などの Web サイド サーバーが多数存在します。。。。誰もが理解できる