Spring Boot アプリケーションのパフォーマンスの向上 - パート I

王林
リリース: 2024-08-22 12:33:43
オリジナル
658 人が閲覧しました

Melhorando o desempenho de aplicações Spring Boot - Parte I

Spring Boot アプリケーションを起動するときは、通常、スターターによって提供されるデフォルト設定を使用します。ほとんどの場合、これで十分です。ただし、パフォーマンスが必要な場合は、この記事の最初の部分で説明するように、特定の調整を行うことができます。

Tomcat を別の サーブレットコンテナ に置き換えます

Spring MVC を使用する アプリケーション webRESTFul は、通常、デフォルトで Tomcat をウェブ サーバー。ただし、Undertow など、より興味深い代替手段もあります。これは、非同期でノンブロッキングのアーキテクチャを備えた高性能 Web サーバーであり、大量の処理を可能にします。同時接続を効率的に処理できるため、高パフォーマンスのアプリケーションに適しています。 トムキャットが悪いと言っているわけではありませんが、アンダートウにチャンスを与えることはできます。

アンダートウを追加

Undertowweb サーバーとして使用するには、spring-boot-starter-web がすでに追加している spring-boot-starter-tomcat 依存関係を無視する必要があります。次に、spring-boot-starter-undertow を追加します。

pom.xml の使用:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusions>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-undertow</artifactId>
    </dependency>
</dependencies>
ログイン後にコピー

build.gradle の使用:

dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web') {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
    }
    implementation 'org.springframework.boot:spring-boot-starter-undertow'
}

ログイン後にコピー

引き波の構成

application.properties または application.yml を通じて、サーバーで使用する IO スレッド の数と ワーカー スレッド の数を構成できます。

application.yml の使用

server:
  undertow:
    threads:
      io: 4
      worker: 64
ログイン後にコピー

application.properties の使用

server.undertow.threads.io=4
server.undertow.threads.worker=64
ログイン後にコピー

I/O スレッド は非ブロッキング操作を実行しますが、アプリケーションに到着する接続をリッスンして処理キューに送信する責任があるため、ブロッキング操作は決して実行しないでください。一般的な値は、CPU コアあたり 2 つの I/O スレッド です。

ワーカー スレッドは、I/O スレッドによって処理キューに送信されたサーブレット リクエストなどのブロック操作を実行します。理想的な値はワークロードによって異なりますが、一般的には CPU コアあたり約 10 スレッドを構成することをお勧めします。

さらに詳細な情報と検討できるその他のオプションについては、Undertow ドキュメントを参照してください。

HTTP レスポンスの圧縮

データ圧縮は、HTTP 応答の本文サイズを削減することを目的とした機能です。これにより、ネットワーク上で送信されるデータ量が削減され、アプリケーションのパフォーマンスが向上します。

Spring Boot でのデータ圧縮の構成は、この機能がサポートされているため、簡単な作業です。

application.yml の使用

server:
  compression:
    enabled: true
    mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
    min-response-size: 1024
ログイン後にコピー

application.properties の使用

server.compression.enabled=true
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json
server.compression.min-response-size=1024
ログイン後にコピー

server.compression.enabled: 圧縮を有効/無効にします。
server.compression.mime-types: 圧縮する必要がある MIME タイプのリスト。
server.compression.min-response-size: 圧縮の実行に必要な「Content-Length」の最小サイズ。

これで記事の前半を終わります。次のパートでは、Spring Boot アプリケーションのパフォーマンスをさらに向上させるために、Hikari、JPA、Hibernate について詳しく学び、それらを構成する方法を学びます。

以上がSpring Boot アプリケーションのパフォーマンスの向上 - パート Iの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート