最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot優(yōu)化內(nèi)置服務(wù)器Tomcat優(yōu)化方式(underTow)

 更新時(shí)間:2024年12月10日 15:33:48   作者:Java楊永杰  
本文詳細(xì)介紹了Spring Boot中Tomcat和Undertow服務(wù)器的配置和優(yōu)化,包括初始線程數(shù)、最大線程數(shù)、最小備用線程數(shù)、最大請(qǐng)求數(shù)等參數(shù)的優(yōu)化建議,以及在高并發(fā)場景下Undertow相對(duì)于Tomcat的優(yōu)勢

前言

通過org.springframework.boot.autoconfigure.web.ServerProperties查看,其中包括屬性tomcat、jetty、undertow三種服務(wù)器的設(shè)置,默認(rèn)啟用tomcat。

Tomcat 自身優(yōu)化

# Tomcat
server:
  tomcat:
    uri-encoding: UTF-8
    #最小線程數(shù)
    min-spare-threads: 500
    #最大線程數(shù)
    max-threads: 2500
    #最大鏈接數(shù)
    max-connections: 6500
    #最大等待隊(duì)列長度
    accept-count: 1000
    #請(qǐng)求頭最大長度kb
    max-http-header-size: 1048576
    #請(qǐng)請(qǐng)求體最大長度kb
    #max-http-post-size: 2097152
  #服務(wù)http端口
  port: 8080
  #鏈接建立超時(shí)時(shí)間
  connection-timeout: 12000
  servlet:
    #訪問根路徑
    context-path: /son

比較重要的有兩個(gè):初始線程數(shù)和最大線程數(shù)。

  • 初始線程數(shù):保障啟動(dòng)的時(shí)候,如果有大量用戶訪問,能夠很穩(wěn)定的接受請(qǐng)求。
  • 最大線程數(shù):用來保證系統(tǒng)的穩(wěn)定性。

其它參數(shù)優(yōu)化:

  • min-spare-threads:最小備用線程數(shù),tomcat啟動(dòng)時(shí)的初始化的線程數(shù)。
  • max-threads:Tomcat可創(chuàng)建的最大的線程數(shù),每一個(gè)線程處理一個(gè)請(qǐng)求,超過這個(gè)請(qǐng)求數(shù)后,客戶端請(qǐng)求只能排隊(duì),等有線程釋放才能處理。(建議這個(gè)配置數(shù)可以在服務(wù)器CUP核心數(shù)的200~250倍之間)
  • accept-count:當(dāng)調(diào)用Web服務(wù)的HTTP請(qǐng)求數(shù)達(dá)到tomcat的最大線程數(shù)時(shí),還有新的HTTP請(qǐng)求到來,這時(shí)tomcat會(huì)將該請(qǐng)求放在等待隊(duì)列中,這個(gè)acceptCount就是指能夠接受的最大等待數(shù),默認(rèn)100。如果等待隊(duì)列也被放滿了,這個(gè)時(shí)候再來新的請(qǐng)求就會(huì)被tomcat拒絕(connection refused)。
  • max-connections:這個(gè)參數(shù)是指在同一時(shí)間,tomcat能夠接受的最大連接數(shù)。一般這個(gè)值要大于(max-threads)+(accept-count)。
  • connection-timeout:最長等待時(shí)間,如果沒有數(shù)據(jù)進(jìn)來,等待一段時(shí)間后斷開連接,釋放線程。

UnderTow優(yōu)化

為什么要變成UnderTow?

我們?cè)谙嗤瑱C(jī)器配置下壓測Tomcat和Undertow,得到的測試結(jié)果如下所示:

  • Tomcat:

  • UnderTow:

內(nèi)存使用對(duì)比:

結(jié)論:

Undertow在高并發(fā)業(yè)務(wù)場景中,性能優(yōu)于Tomcat

實(shí)現(xiàn)方式

POM文件移除tomcat換成underTow

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId><!-- 移除掉默認(rèn)支持的 Tomcat -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-undertow</artifactId>
        </dependency>

配置相關(guān)參數(shù):

# 是否打開 undertow 日志,默認(rèn)為 false
server.undertow.accesslog.enabled=false
# 設(shè)置訪問日志所在目錄
server.undertow.accesslog.dir=logs
# 指定工作者線程的 I/0 線程數(shù),默認(rèn)為 2 或者 CPU 的個(gè)數(shù)
server.undertow.io-threads=
# 指定工作者線程個(gè)數(shù),默認(rèn)為 I/O 線程個(gè)數(shù)的 8 倍
server.undertow.worker-threads=
# 設(shè)置 HTTP POST 內(nèi)容的最大長度,默認(rèn)不做限制
server.undertow.max-http-post-size=0

最后直接main 方法啟動(dòng)Springboot即可。

總結(jié)

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

相關(guān)文章

  • javaWEB中前后臺(tái)亂碼問題的解決方法總結(jié)

    javaWEB中前后臺(tái)亂碼問題的解決方法總結(jié)

    下面小編就為大家?guī)硪黄猨avaWEB中前后臺(tái)亂碼問題的解決方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法

    Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法

    這篇文章主要介紹了Java使用新浪微博API開發(fā)微博應(yīng)用的基本方法,文中還給出了一個(gè)不使用任何SDK實(shí)現(xiàn)Oauth授權(quán)并實(shí)現(xiàn)簡單的發(fā)布微博功能的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2015-11-11
  • Java Graphics實(shí)現(xiàn)界面顯示文字并換行

    Java Graphics實(shí)現(xiàn)界面顯示文字并換行

    Java中Graphics類提供了一些基本的幾何圖形繪制方法,本文將利用Graphics實(shí)現(xiàn)界面顯示文字并換行效果,感興趣的小伙伴可以動(dòng)手嘗試一下
    2022-08-08
  • Sharding-Jdbc 自定義復(fù)合分片的實(shí)現(xiàn)(分庫分表)

    Sharding-Jdbc 自定義復(fù)合分片的實(shí)現(xiàn)(分庫分表)

    本文主要介紹了Sharding-Jdbc 自定義復(fù)合分片的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • spring中Mapstruct屬性映射的實(shí)現(xiàn)

    spring中Mapstruct屬性映射的實(shí)現(xiàn)

    本文主要介紹了spring中Mapstruct屬性映射的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • java實(shí)現(xiàn)上傳網(wǎng)絡(luò)圖片到微信臨時(shí)素材

    java實(shí)現(xiàn)上傳網(wǎng)絡(luò)圖片到微信臨時(shí)素材

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)上傳網(wǎng)絡(luò)圖片到微信臨時(shí)素材,網(wǎng)絡(luò)圖片上傳到微信服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 解析idea內(nèi)嵌瀏覽器翻譯

    解析idea內(nèi)嵌瀏覽器翻譯

    這篇文章主要介紹了解析idea內(nèi)嵌瀏覽器翻譯的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 淺談java封裝

    淺談java封裝

    封裝封裝就是將屬性私有化,提供公有的方法訪問私有的屬性。*實(shí)現(xiàn)封裝的步驟:(1)修改屬性的可見性來限制對(duì)屬性的訪問。(2)為每個(gè)屬性創(chuàng)建一對(duì)賦值方法和取值方法,用于對(duì)這些屬性的訪問。(3)在賦值和取值方法中,加入對(duì)屬性的存取限制。
    2015-03-03
  • Java 基于AQS實(shí)現(xiàn)自定義同步器的示例

    Java 基于AQS實(shí)現(xiàn)自定義同步器的示例

    這篇文章主要介紹了Java 基于AQS實(shí)現(xiàn)自定義同步器的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-03-03
  • 后端java壓縮圖片超詳細(xì)圖文教程

    后端java壓縮圖片超詳細(xì)圖文教程

    這篇文章主要給大家介紹了關(guān)于后端java壓縮圖片的相關(guān)資料,片壓縮是一種廣泛采用的技術(shù),它不僅能顯著減小文件大小,釋放更多存儲(chǔ)空間,還能提升圖片加載速度,避免長時(shí)間等待,需要的朋友可以參考下
    2024-04-04

最新評(píng)論

枣强县| 浦县| 邯郸市| 嵩明县| 河津市| 英山县| 新乡县| 遂昌县| 舟山市| 珲春市| 杭锦后旗| 拜泉县| 沾化县| 东港市| 太仆寺旗| 玛曲县| 昆明市| 徐州市| 和田市| 惠州市| 抚宁县| 孝昌县| 湟中县| 诸暨市| 武胜县| 巩留县| 齐齐哈尔市| 新昌县| 桑日县| 馆陶县| 德化县| 灵川县| 恭城| 东乡县| 威远县| 银川市| 白山市| 宁国市| 澄迈县| 剑阁县| 汝城县|