」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 提高 Spring Boot 應用程式的效能 - 第一部分

提高 Spring Boot 應用程式的效能 - 第一部分

發佈於2024-11-08
瀏覽:416

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

啟動Spring Boot應用程式時,我們通常使用啟動器提供的預設設置,這對於大多數情況來說已經足夠了。但是,如果我們需要效能,則可以進行具體調整,如本文第一部分所示。

Tomcat 替換為另一個 servlet 容器

應用程式webRESTFul,使用Spring MVC,一般添加spring-boot-starter-web依賴,預設使用Tomcat作為伺服器網路。然而,還有更有趣的替代方案,例如Undertow,這是一個高效能的web伺服器,具有非同步和非阻塞架構,這使得它能夠處理大量資料高效的同時連接,使其適合高效能應用。我們並不是說 Tomcat 不好,但我們可以給 Undertow.

一個機會。

Undertow 加入 Spring

為了讓我們使用Undertow作為web伺服器,我們需要忽略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 核心兩個 I/O 執行緒

工作執行緒執行阻塞操作,例如由I/O Threads傳送至處理佇列的Servlet請求。理想值取決於工作負載,但通常建議每個 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」的最小大小。

至此,我們結束了本文的第一部分。在下一部分中,我們將詳細了解 Hikari、JPA 和 Hibernate,並學習如何配置它們,以進一步提高 Spring Boot 應用程式的效能。

版本聲明 本文轉載於:https://dev.to/mathstylish/melhorando-a-performance-de-aplicacoes-spring-boot-parte-i-58jl?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3