啟動 Spring Boot 應用程式時,我們通常會使用啟動器提供的預設設置,這對於大多數情況來說已經足夠了。但是,如果我們需要效能,則可以進行具體調整,如本文第一部分所示。
應用web、RESTFul,使用Spring MVC,一般會加入spring-boot-starter-web 依賴,預設使用Tomcat 作為網路伺服器。然而,還有更有趣的替代方案,例如Undertow,它是一個高效能web 伺服器,具有異步和非阻塞架構,允許您處理大量資料高效的同時連接,使其適合高性能應用。我們並不是說 Tomcat 不好,但我們可以給 Undertow 一個機會。
為了讓我們使用Undertow 作為web 伺服器,我們需要忽略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 核心兩個 I/O 執行緒。
工作執行緒執行阻塞操作,例如由I/O 執行緒傳送到處理佇列的Servlet請求。理想值取決於工作負載,但通常建議每個 CPU 核心配置 10 個左右的執行緒。
有關更詳細的資訊和更多可探索的選項,只需前往 Undertow 文件。
資料壓縮是一項旨在減少 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 應用程式的效能。
以上是提高 Spring Boot 應用程式的效能 - 第一部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!