なぜ同社は SpringBoot プロジェクトで Tomcat を使用することを禁止しているのですか?

序文

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 サイド サーバーが多数存在します。誰もが理解できる

おすすめ

転載: blog.csdn.net/aq_money/article/details/130304942