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

SpringBoot優(yōu)化連接數(shù)的方法詳解

 更新時(shí)間:2023年06月08日 08:46:05   作者:中唄  
SpringBoot開發(fā)最大的好處是簡(jiǎn)化配置,內(nèi)置了Tomcat,下面這篇文章主要給大家介紹了關(guān)于SpringBoot優(yōu)化連接數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

由于springboot內(nèi)置web容器是Tomcat,所以我們?cè)谑褂胹pringboot時(shí),如果內(nèi)置Tomcat參數(shù)不滿足要求時(shí),可按需優(yōu)化。
SpringBoot內(nèi)置Tomcat,在默認(rèn)設(shè)置中,Tomcat的最大線程數(shù)是200,最大連接數(shù)是10000。支持的并發(fā)量是指連接數(shù),也就是說(shuō) 支持最大并發(fā)量是一萬(wàn)(默認(rèn))。

Tomcat有兩種處理連接的模式,

1,是BIO,一個(gè)線程只處理一個(gè)Socket連接,

2,是NIO,一個(gè)線程處理多個(gè)Socket連接。

由于HTTP請(qǐng)求不會(huì)太耗時(shí),而且多個(gè)連接一般不會(huì)同時(shí)來(lái)消息,所以一個(gè)線程處理多個(gè)連接沒(méi)有太大問(wèn)題。一個(gè)線程處理多個(gè)連接數(shù)會(huì)很慢 有可能會(huì)超時(shí)。

springboot 配置Tomcat參數(shù):

server:
  tomcat:
    accept-count: 80 #掛起的請(qǐng)求隊(duì)列最大連接數(shù),默認(rèn)100
    max-connections: 2000  #最大連接數(shù),默認(rèn)10000,tomcat內(nèi)tcp連接池的大小
    max-threads: 200 #最大線程數(shù),默認(rèn)200,超過(guò)加入等待隊(duì)列,默認(rèn)是100,當(dāng)?shù)却?duì)列達(dá)到100后,直接拒絕此次請(qǐng)求返回connection refused。連接超時(shí)時(shí)間默認(rèn)為20秒
    min-spare-threads: 5  #最小工作線程數(shù)
    connection-timeout: 60000  #server端的socket超時(shí)間,默認(rèn)60s
    accesslog:
      enabled: true #啟動(dòng)tomcat訪問(wèn)日志

靜態(tài)內(nèi)部類Accesslog:主要用于配置Tomcat訪問(wèn)日志的參數(shù)信息:

  • enabled:是否啟用訪問(wèn)日志
  • pattern:訪問(wèn)日志的格式化模式,默認(rèn)為common
  • directory:創(chuàng)建日志文件的目錄??梢允墙^對(duì)或相對(duì)于Tomcat的基目錄,默認(rèn)是logs
  • prefix:日志文件名稱前綴,默認(rèn)access_log
  • suffix:日志文件名稱后綴,默認(rèn).log
  • rotate:是否啟用訪問(wèn)日志旋轉(zhuǎn),默認(rèn)為true
  • renameOnRotate:是否推遲將日期戳包含在文件名中
  • fileDateFormat:日志文件名稱中的日期格式,默認(rèn)為.yyyy-MM-dd。
  • requestAttributesEnabled:為請(qǐng)求使用的IP地址、主機(jī)名、協(xié)議和端口設(shè)置請(qǐng)求屬性
  • buffered:是否緩沖輸出,使其只定期刷新,默認(rèn)為true

優(yōu)化完內(nèi)置Tomcat配置,我們可以按需再優(yōu)化下數(shù)據(jù)庫(kù)連接配置:

查詢mysql最大連接數(shù):

show variables like "%max_connections%";

MySQL 最大連接數(shù)的默認(rèn)值是 100,這個(gè)數(shù)值對(duì)于并發(fā)連接很多的數(shù)據(jù)庫(kù)應(yīng)用是遠(yuǎn)不夠用的。當(dāng)連接請(qǐng)求大于默認(rèn)連接數(shù)后,就會(huì)出現(xiàn)無(wú)法連接數(shù)據(jù)庫(kù)的錯(cuò)誤,因此我們需要把它適當(dāng)調(diào)大一些。在使用 MySQL 數(shù)據(jù)庫(kù)的時(shí)候,經(jīng)常會(huì)遇到一個(gè)問(wèn)題,就是 “Can not connect to MySQL server. Too many connections” -mysql 1040 錯(cuò)誤,這是因?yàn)樵L問(wèn) MySQL 且還未釋放的連接數(shù)已經(jīng)達(dá)到 MySQL 的上限。通常,MySQL 的最大連接數(shù)默認(rèn)是 100,,最大可以達(dá)到 16384。

常用的修改MySQL最大連接數(shù)的兩種方式如下:

第一種:命令行修改最大連接數(shù) (max_connections),設(shè)置最大連接數(shù)為 1000。

set global max_connections = 1000;

這種方式有個(gè)問(wèn)題,就是設(shè)置的最大連接數(shù)只在 MySQL 當(dāng)前服務(wù)進(jìn)程有效,一旦 MySQL 重啟,又會(huì)恢復(fù)到初始狀態(tài)。因?yàn)?MySQL 啟動(dòng)后的初始化工作是從其配置文件中讀取數(shù)據(jù)的,而這種方式?jīng)]有對(duì)其配置文件做更改。

第二種:通過(guò)修改配置文件來(lái)修改 MySQL 最大連接數(shù) (max_connections)。

進(jìn)入 MySQL 安裝目錄,打開 MySQL 配置文件 my.ini 或 my.cnf 查找 max_connections=100,修改為 max_connections=1000,重啟 MySQL 服務(wù)即可。

mybatis 的并發(fā)上限優(yōu)化:

spring.datasource.name=druidDataSource
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.1.1:13306/test?useUnicode=true&characterEncoding=utf8&useTimezone=true&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456test
spring.datasource.filters=stat,wall,log4j,config
spring.datasource.max-active=100
spring.datasource.initial-size=1
spring.datasource.max-wait= 60000
spring.datasource.min-idle=1
spring.datasource.time-between-eviction-runs-millis=60000
spring.datasource.min-evictable-idle-time-millis=300000
spring.datasource.validation-query=select 'x'
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=false
spring.datasource.test-on-return=false
spring.datasource.pool-prepared-statements=true
spring.datasource.max-open-prepared-statements=50
spring.datasource.max-pool-prepared-statement-per-connection-size=20

總結(jié)

到此這篇關(guān)于SpringBoot優(yōu)化連接數(shù)的文章就介紹到這了,更多相關(guān)SpringBoot優(yōu)化連接數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 8 lambda表達(dá)式list操作分組、過(guò)濾、求和、最值、排序、去重代碼詳解

    java 8 lambda表達(dá)式list操作分組、過(guò)濾、求和、最值、排序、去重代碼詳解

    java8的lambda表達(dá)式提供了一些方便list操作的方法,主要涵蓋分組、過(guò)濾、求和、最值、排序、去重,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • Java利用POI讀取、寫入Excel的方法指南

    Java利用POI讀取、寫入Excel的方法指南

    這篇文章主要給大家介紹了關(guān)于Java利用POI讀取、寫入Excel的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 如何實(shí)現(xiàn)java執(zhí)行kettle并傳參數(shù)

    如何實(shí)現(xiàn)java執(zhí)行kettle并傳參數(shù)

    文章主要介紹了在審批成功后如何使用Kettle傳遞批次號(hào)參數(shù)并執(zhí)行KTR文件,同時(shí),提到了所需的主要POM依賴,并強(qiáng)調(diào)了個(gè)人經(jīng)驗(yàn)的價(jià)值,鼓勵(lì)大家參考和使用
    2025-01-01
  • btrace定位生產(chǎn)故障的方法示例

    btrace定位生產(chǎn)故障的方法示例

    這篇文章主要介紹了btrace定位生產(chǎn)故障的方法示例,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-02-02
  • 如何使用Java實(shí)現(xiàn)請(qǐng)求deepseek

    如何使用Java實(shí)現(xiàn)請(qǐng)求deepseek

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)請(qǐng)求deepseek功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • Idea調(diào)用WebService的關(guān)鍵步驟和注意事項(xiàng)

    Idea調(diào)用WebService的關(guān)鍵步驟和注意事項(xiàng)

    這篇文章主要介紹了如何在Idea中調(diào)用WebService,包括理解WebService的基本概念、獲取WSDL文件、閱讀和理解WSDL文件、選擇對(duì)接測(cè)試工具或方式、發(fā)送請(qǐng)求和接收響應(yīng)、處理響應(yīng)結(jié)果以及錯(cuò)誤處理,需要的朋友可以參考下
    2025-01-01
  • Nacos(SpringBoot)配置加載及刷新方式

    Nacos(SpringBoot)配置加載及刷新方式

    文章主要介紹了NacosConfigAutoConfiguration的配置加載及刷新過(guò)程,包括NacosConfigBeanDefinitionRegistrar的注冊(cè)、NacosPropertySource的處理、自動(dòng)刷新機(jī)制以及NacosValueAnnotationBeanPostProcessor的實(shí)現(xiàn)
    2024-12-12
  • Linux中如何修改jar包里的文件類及配置等內(nèi)容詳解

    Linux中如何修改jar包里的文件類及配置等內(nèi)容詳解

    在項(xiàng)目測(cè)試或者部署后,經(jīng)常會(huì)遇到需要更改一些配置文件或者java類,這篇文章主要介紹了Linux中如何修改jar包里的文件類及配置等內(nèi)容的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-12-12
  • Java中實(shí)現(xiàn)用戶之間的通訊方式

    Java中實(shí)現(xiàn)用戶之間的通訊方式

    在Java中實(shí)現(xiàn)用戶間通訊主要有兩種方法:Socket編程和WebSocket,Socket編程允許兩個(gè)設(shè)備間進(jìn)行數(shù)據(jù)交換,適用于基本的網(wǎng)絡(luò)通訊,本文提供了兩種方法的基本實(shí)現(xiàn)代碼和相關(guān)配置,幫助開發(fā)者根據(jù)需求選擇合適的通訊方式
    2024-09-09
  • Java下載文件的4種方式總結(jié)

    Java下載文件的4種方式總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于Java下載文件的4種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論

宜兴市| 东阿县| 天峻县| 祁东县| 会泽县| 福泉市| 邹平县| 正镶白旗| 莱芜市| 大姚县| 广丰县| 临澧县| 阳城县| 许昌县| 济阳县| 铁岭县| 习水县| 石阡县| 合山市| 莎车县| 祁连县| 包头市| 清水县| 宜春市| 襄樊市| 琼结县| 夏河县| 通州市| 松溪县| 广元市| 长春市| 北海市| 临桂县| 石渠县| 东丰县| 贵阳市| 蓬安县| 青州市| 许昌县| 杨浦区| 锡林浩特市|