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

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)資料,文中通過實(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è)連接沒有太大問題。一個(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,超過加入等待隊(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訪問日志

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

  • enabled:是否啟用訪問日志
  • pattern:訪問日志的格式化模式,默認(rèn)為common
  • directory:創(chuàng)建日志文件的目錄??梢允墙^對(duì)或相對(duì)于Tomcat的基目錄,默認(rèn)是logs
  • prefix:日志文件名稱前綴,默認(rèn)access_log
  • suffix:日志文件名稱后綴,默認(rèn).log
  • rotate:是否啟用訪問日志旋轉(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è)問題,就是 “Can not connect to MySQL server. Too many connections” -mysql 1040 錯(cuò)誤,這是因?yàn)樵L問 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è)問題,就是設(shè)置的最大連接數(shù)只在 MySQL 當(dāng)前服務(wù)進(jìn)程有效,一旦 MySQL 重啟,又會(huì)恢復(fù)到初始狀態(tài)。因?yàn)?MySQL 啟動(dòng)后的初始化工作是從其配置文件中讀取數(shù)據(jù)的,而這種方式?jīng)]有對(duì)其配置文件做更改。

第二種:通過修改配置文件來(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)文章

  • MyBatisPlus分頁(yè)時(shí)排序的實(shí)現(xiàn)

    MyBatisPlus分頁(yè)時(shí)排序的實(shí)現(xiàn)

    本文主要介紹了MyBatisPlus分頁(yè)時(shí)排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍

    JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍

    今天小編就為大家分享一篇關(guān)于JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • JavaEE中用response向客戶端輸出中文數(shù)據(jù)亂碼問題分析

    JavaEE中用response向客戶端輸出中文數(shù)據(jù)亂碼問題分析

    這篇文章主要介紹了JavaEE中用response向客戶端輸出中文數(shù)據(jù)亂碼問題分析,需要的朋友可以參考下
    2014-10-10
  • 解析JAVA深度克隆與淺度克隆的區(qū)別詳解

    解析JAVA深度克隆與淺度克隆的區(qū)別詳解

    本篇文章是對(duì)JAVA深度克隆與淺度克隆的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Springboot整合mqtt服務(wù)的示例代碼

    Springboot整合mqtt服務(wù)的示例代碼

    MQTT是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡(jiǎn)單、開放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。本文為大家分享了Springboot整合mqtt服務(wù)的示例代碼,需要的可以參考一下
    2022-03-03
  • 教你在JNA中將本地方法映射到JAVA代碼中的示例

    教你在JNA中將本地方法映射到JAVA代碼中的示例

    對(duì)于JNI來(lái)說(shuō),我們可以使用native關(guān)鍵字來(lái)定義本地方法。那么在JNA中有那些在JAVA代碼中定義本地方法的方式呢?對(duì)JNA本地方法映射JAVA代碼的相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-04-04
  • Java基于解釋器模式實(shí)現(xiàn)定義一種簡(jiǎn)單的語(yǔ)言功能示例

    Java基于解釋器模式實(shí)現(xiàn)定義一種簡(jiǎn)單的語(yǔ)言功能示例

    這篇文章主要介紹了Java基于解釋器模式實(shí)現(xiàn)定義一種簡(jiǎn)單的語(yǔ)言功能,簡(jiǎn)單描述了解釋器模式的概念、功能及Java使用解釋器模式定義一種簡(jiǎn)單語(yǔ)言的相關(guān)實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2018-05-05
  • log4j與slf4j的使用與區(qū)別詳解

    log4j與slf4j的使用與區(qū)別詳解

    這篇文章主要介紹了log4j與slf4j的使用與區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java倒計(jì)時(shí)三種實(shí)現(xiàn)方式代碼實(shí)例

    Java倒計(jì)時(shí)三種實(shí)現(xiàn)方式代碼實(shí)例

    這篇文章主要介紹了Java倒計(jì)時(shí)三種實(shí)現(xiàn)方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • spring boot 默認(rèn)異常處理的實(shí)現(xiàn)

    spring boot 默認(rèn)異常處理的實(shí)現(xiàn)

    這篇文章主要介紹了spring boot 默認(rèn)異常處理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評(píng)論