【雜談】Spring Boot 默認支持的並發量


Spring Boot應用支持的最大並發量是多少?

Spring Boot 能支持的最大並發量主要看其對Tomcat的設置,可以在配置文件中對其進行更改。當在配置文件中敲出max后提示值就是它的默認值。

我們可以看到默認設置中,Tomcat的最大線程數是200,最大連接數是10000。

並發量指的是連接數,還是線程數?

當然是連接數。

200個線程如何處理10000條連接?

 Tomcat有兩種處理連接的模式,一種是BIO,一個線程只處理一個Socket連接,另一種就是NIO,一個線程處理多個Socket連接。由於HTTP請求不會太耗時,而且多個連接一般不會同時來消息,所以一個線程處理多個連接沒有太大問題。

為什么不開幾個線程?

多開線程的代價就是,增加上下文切換的時間,浪費CPU時間,另外還有就是線程數增多,每個線程分配到的時間片就變少。多開線程≠提高處理效率。

那增大最大連接數呢?

增大最大連接數,支持的並發量確實可以上去。但是在沒有改變硬件條件的情況下,這種並發量的提升必定以犧牲響應時間為代價。

對了,配置文件明明就是空的,這些提示內容是哪里加載的?

默認生成的配置文件確實是空的,就是普通的文本文件,不要錯以為這些內容是被隱藏掉的。首先是IDE要支持,IDE支持Spring Boot項目就知道該從哪里加載數據。Spring Boot的默認配置信息,都在 spring-boot-autoconfigure-版本號.jar 這個包中。其中上述Tomcat的配置在/web/ServerProperties.java中。下圖是用jd-gui反編譯看的,你也可以在spring boot項目中找到依賴包查看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM