亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot tomcat最大線程數(shù)與最大連接數(shù)解析

 更新時間:2021年06月04日 14:59:40   作者:裂開的湯圓  
這篇文章主要介紹了springboot tomcat最大線程數(shù)與最大連接數(shù)解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot tomcat最大線程數(shù)與最大連接數(shù)

首先看看springboot內(nèi)置的tomcat,該如何配置這兩個參數(shù)

# 在配置文件中添加如下內(nèi)容
# tomcat最大線程數(shù),默認(rèn)為200
server.tomcat.max-threads=200
# tomcat最大連接數(shù),默認(rèn)為10000(網(wǎng)上的說法)
server.tomcat.max-connections=300

如何理解上面兩個參數(shù)

為了方便理解,我這里使用了springboot編寫了一個簡單了的服務(wù),包含一個模擬登錄的接口,并使用jmeter進(jìn)行測試,不了解jmeter如何使用的朋友可以翻看我的歷史文章。部分代碼如下

// java 代碼
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UsersRepository usersRepository;

    @PostMapping("/login")
    public String login(Users user) throws InterruptedException {
        // 這里將線程掛起3秒,方便觀察結(jié)果
        Thread.sleep(3000);
        Users checkUser = usersRepository.findByName(user.getName());
        if(checkUser == null)
            return "用戶不存在";
        if(!checkUser.getPassword().equals(user.getPassword()))
            return "密碼錯誤";
        System.out.println("用戶:" + checkUser.getName() + ",登錄成功");
        return "登錄成功";
    }
}

接下來,設(shè)置jmeter中的線程數(shù),分別測試以下場景返回的結(jié)果

注意:我在java代碼中添加將線程掛起3秒的語句,實際的響應(yīng)時間應(yīng)該減去3秒

場景1:并發(fā)請求數(shù) <= tomcat最大線程數(shù)200

設(shè)置jmeter并發(fā)請求數(shù)量為200

結(jié)果統(tǒng)計

結(jié)論:可以看到200個請求,平均響應(yīng)時間為(3156-3000)=156ms,最小響應(yīng)時間為23ms,最大響應(yīng)時間為336ms,響應(yīng)結(jié)果正常。

場景2:并發(fā)數(shù) >tomcat最大線程數(shù)200,以下我將jmeter線程數(shù)設(shè)置為201,再來看看結(jié)果

看了下,平均值,最小值好像沒什么異常,但是最大值卻去到了5606毫秒,接近6S的時間。為什么會有個接近6S的最大值,原因很簡單,因為tomcat最大的線程數(shù)為200,201的并發(fā)請求量,超出了并發(fā)處理的數(shù)量200,多出來的1個請求,需要等待某個處理中的請求處理完成。

這里我翻看了jmeter中大部分的http請求,驗證了我的想法。大部分的http請求,響應(yīng)時間都是3000多毫秒,只有最后一個響應(yīng)的請求,響應(yīng)的時間為5606毫秒,截圖如下

場景3:請求數(shù)超過最大連接數(shù)300,這里將jmeter并發(fā)線程數(shù)設(shè)置為600

異常數(shù)量由原本的百分之0變成37.45%

可以看到有大量的沒有正常響應(yīng)的http請求,原因很簡單,因為超過了tomcat設(shè)置的最大連接數(shù),服務(wù)器拒絕了該次請求的連接

SpringBoot中修改tomcat最大連接數(shù)、最大線程數(shù)、最大等待數(shù)

1)maxThreads(最大線程數(shù))

每一次HTTP請求到達(dá)Web服務(wù)器,Web服務(wù)器都會創(chuàng)建一個線程來處理該請求,該參數(shù)決定了應(yīng)用服務(wù)同時可以處理多少個HTTP請求,tomcat默認(rèn)為200;

2)accepCount(最大等待數(shù))

當(dāng)調(diào)用Web服務(wù)的HTTP請求數(shù)達(dá)到tomcat的最大線程數(shù)時,還有新的HTTP請求到來,這時tomcat會將該請求放在等待隊列中,這個acceptCount就是指能夠接受的最大等待數(shù),默認(rèn)100.如果等待隊列也被放滿了,這個時候再來新的請求就會被tomcat拒絕(connection refused);

3)maxConnections(最大連接數(shù))

這個參數(shù)是指在同一時間,tomcat能夠接受的最大連接數(shù)。一般這個值要大于maxThreads+acceptCount。

根據(jù)公司用戶量及機(jī)器配置信息,公司的最大連接數(shù)、最大線程數(shù)和最大等待數(shù)優(yōu)化為:

   #最大連接數(shù)
   server.tomcat.max-connections=2000
   #最大線程數(shù)
   server.tomcat.max-threads=1000
   #最大等待數(shù)
   server.tomcat.accept-count=800

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java Swing實現(xiàn)餐廳點餐系統(tǒng)源碼(收藏版)

    Java Swing實現(xiàn)餐廳點餐系統(tǒng)源碼(收藏版)

    這篇文章主要介紹了Java Swing實現(xiàn)餐廳點餐系統(tǒng)源碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Java數(shù)據(jù)脫敏常用方法(3種)

    Java數(shù)據(jù)脫敏常用方法(3種)

    數(shù)據(jù)脫敏常用在電話號碼和身份證號,本文主要介紹了Java數(shù)據(jù)脫敏常用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Maven發(fā)布封裝到中央倉庫時候報錯:no default secret key

    Maven發(fā)布封裝到中央倉庫時候報錯:no default secret key

    這篇文章主要介紹了Maven發(fā)布封裝到中央倉庫時候報錯:no default secret key,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • System.getProperty(“l(fā)ine.separator“)含義及意義詳解

    System.getProperty(“l(fā)ine.separator“)含義及意義詳解

    這篇文章主要介紹了System.getProperty(“l(fā)ine.separator“)含義,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Springboot?yml?Map?List讀取方式

    Springboot?yml?Map?List讀取方式

    這篇文章主要介紹了Springboot?yml?Map?List讀取方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 詳解重試框架Spring retry實踐

    詳解重試框架Spring retry實踐

    spring retry是從spring batch獨立出來的一個能功能,主要實現(xiàn)了重試和熔斷。這篇文章主要介紹了詳解重試框架Spring retry實踐,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Java11中的新增字符串APIs使用實例探究

    Java11中的新增字符串APIs使用實例探究

    這篇文章主要為大家介紹了Java11中的新增字符串APIs使用實例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Java與Scala創(chuàng)建List與Map的實現(xiàn)方式

    Java與Scala創(chuàng)建List與Map的實現(xiàn)方式

    這篇文章主要介紹了Java與Scala創(chuàng)建List與Map的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • MyBatis入門程序

    MyBatis入門程序

    MyBatis是支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架。接下來本文給大家?guī)砹薓yBatis入門程序,感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • java實現(xiàn)的2048游戲完整實例

    java實現(xiàn)的2048游戲完整實例

    這篇文章主要介紹了java實現(xiàn)的2048游戲,結(jié)合完整實例形式分析了java實現(xiàn)2048游戲功能的相關(guān)數(shù)值運算、swing組件布局、事件響應(yīng)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01

最新評論