1. 程式人生 > >【雜談】Spring Boot 默認支持的並發量

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

情況下 http請求 pro inf 增加 ima 改變 prop server

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

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

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

技術分享圖片

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

當然是連接數。

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

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

為什麽不開幾個線程?

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

那增大最大連接數呢?

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

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

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

技術分享圖片

技術分享圖片

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