「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Spring Boot アプリケーションのパフォーマンスの向上 - パート I

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

2024 年 11 月 8 日に公開
ブラウズ:560

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

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

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

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

にチャンスを与えることはできます。

UndertowSpringに追加します

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

を追加します。

pom.xml の使用:


    
        org.springframework.boot
        spring-boot-starter-web
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
        
    

    
        org.springframework.boot
        spring-boot-starter-undertow
    

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 について詳しく学び、それらを構成する方法を学びます。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/mathstylish/melhorando-a-performance-de-aplicacoes-spring-boot-parte-i-58jl?1 権利侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3