源碼
ServerProperties
Tomcat
配置?
參數解析
必須要先建立連接,再用線程處理。
比如max-connection最大連接數,accept-count相當于隊列容量。總連接數二者和
min-spare-treads 核心線程數默認10,max-threads最大線程數默認200。
正常請求下處理請求后就釋放連接很快的。
如果異常會立刻釋放連接。
Spring Boot 應用能同時處理的請求數量取決于多個因素,主要包括:
-
服務器硬件:CPU、內存、磁盤 I/O 等硬件資源直接影響并發處理能力。
-
Web 服務器:Spring Boot 默認使用 Tomcat,其最大連接數由?
server.tomcat.max-threads
?配置決定,默認通常是 200。你也可以切換到其他服務器,如 Jetty 或 Undertow。 -
應用設計:同步阻塞的代碼會限制并發能力,而異步非阻塞(如使用 WebFlux)能顯著提升并發性能。
-
數據庫和外部服務:數據庫連接池大小(如 HikariCP)和外部服務的響應速度也會影響并發處理能力。
-
JVM 配置:堆大小、GC 策略等 JVM 參數對性能有重要影響。
配置示例
-
Tomcat 線程數:
yaml
復制
server:tomcat:max-threads: 500
-
HikariCP 連接池:
yaml
復制
spring:datasource:hikari:maximum-pool-size: 100
估算并發量
-
同步阻塞:并發量大致等于 Tomcat 線程數。
-
異步非阻塞:并發量可以遠高于線程數,具體取決于系統資源。
總結
Spring Boot 的并發處理能力受硬件、服務器配置、應用設計和外部服務等多方面影響。通過合理配置和優化,可以有效提升并發性能。