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

springboot內(nèi)置的tomcat支持最大的并發(fā)量問(wèn)題

 更新時(shí)間:2023年03月12日 16:29:50   作者:Joe world  
這篇文章主要介紹了springboot內(nèi)置的tomcat支持最大的并發(fā)量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

springboot內(nèi)置的tomcat支持最大的并發(fā)量

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í)

默認(rèn)內(nèi)嵌Tomcat配置

  • server.tomcat.accept-count:等待隊(duì)列長(zhǎng)度,當(dāng)可分配的線程數(shù)全部用完之后,后續(xù)的請(qǐng)求將進(jìn)入等待隊(duì)列等待,等待隊(duì)列滿后則拒絕處理,默認(rèn)100。
  • server.tomcat.max-connections:最大可被連接數(shù),默認(rèn)10000
  • server.tomcat.max-threads:最大工作線程數(shù),默認(rèn)200,
  • server.tomcat.min-spare-threads:最小工作線程數(shù),初始化分配線程數(shù),默認(rèn)10

默認(rèn)配置下,連接超過(guò)10000后會(huì)出現(xiàn)拒絕連接情況

默認(rèn)配置下,觸發(fā)的請(qǐng)求超過(guò)200+100后拒絕處理(最大工作線程數(shù)+等待隊(duì)列長(zhǎng)度)

如果默認(rèn)配置無(wú)法滿足當(dāng)前需求 可以自己調(diào)優(yōu) 可以手動(dòng)修改配置來(lái)進(jìn)行處理并發(fā)

修改pro文件

server.port=7001

server.tomcat.accept-count=1000

server.tomcat.max-connections=10000

server.tomcat.max-threads=500

server.tomcat.min-spare-threads=100

然后 打包重啟項(xiàng)目

kill -9 9545   //殺死進(jìn)程

ps -ef | grep java   //查看項(xiàng)目啟動(dòng)的端口

pstree -p 7968 | wc -l    //查看進(jìn)程數(shù)

我們也可以使用配置文件, 可以新增WebServerConfiguration.java文件

import org.apache.catalina.connector.Connector;

import org.apache.coyote.http11.Http11NioProtocol;

import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;

import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;

import org.springframework.boot.web.server.ConfigurableWebServerFactory;

import org.springframework.boot.web.server.WebServerFactoryCustomizer;

import org.springframework.stereotype.Component;


//當(dāng)Spring容器內(nèi)沒(méi)有TomcatEmbeddedServletContainerFactory這個(gè)bean時(shí),會(huì)吧此bean加載進(jìn)spring容器中

@Component

public class WebServerConfiguration implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {

? ? @Override

? ? public void customize(ConfigurableWebServerFactory configurableWebServerFactory) {

? ? ? ? ? ? //使用對(duì)應(yīng)工廠類提供給我們的接口定制化我們的tomcat connector

? ? ? ? ((TomcatServletWebServerFactory)configurableWebServerFactory).addConnectorCustomizers(new TomcatConnectorCustomizer() {

? ? ? ? ? ? @Override

? ? ? ? ? ? public void customize(Connector connector) {

? ? ? ? ? ? ? ? Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();

? ? ? ? ? ? ? ? //定制化keepalivetimeout,設(shè)置30秒內(nèi)沒(méi)有請(qǐng)求則服務(wù)端自動(dòng)斷開(kāi)keepalive鏈接

? ? ? ? ? ? ? ? protocol.setKeepAliveTimeout(30000);

? ? ? ? ? ? ? ? //當(dāng)客戶端發(fā)送超過(guò)10000個(gè)請(qǐng)求則自動(dòng)斷開(kāi)keepalive鏈接

? ? ? ? ? ? ? ? protocol.setMaxKeepAliveRequests(10000);

? ? ? ? ? ? }

? ? ? ? });

? ? }

}

備注:

MySQL 數(shù)據(jù)庫(kù) QPS 容量問(wèn)題:

  • 主鍵查詢: 千萬(wàn)級(jí)別數(shù)據(jù) == 1-10 ms
  • 唯一索引查詢: 千萬(wàn)級(jí)別數(shù)據(jù) == 10-100 ms
  • 非唯一索引查詢: 千萬(wàn)級(jí)別數(shù)據(jù) == 100-1000ms
  • 無(wú)索引數(shù)據(jù): 百萬(wàn)級(jí)別數(shù)據(jù) == 1000ms+

MySQL 數(shù)據(jù)庫(kù) TPS 容量問(wèn)題:

  • 非插入的更新刪除操作: 同查詢
  • 插入操作: 1w~10w tps(依賴配置優(yōu)化)

提高tomcat并發(fā)量的幾種方法

1、Apache + Tomcat 結(jié)合起來(lái)用Apache負(fù)責(zé)靜態(tài)頁(yè)面,Tomcat負(fù)責(zé)動(dòng)態(tài)頁(yè)面,同時(shí)減少connectionTimeout的時(shí)間,以應(yīng)對(duì)并發(fā)量大線程回收來(lái)不及的情況。

2、壓力過(guò)大的問(wèn)題,可以做負(fù)載均衡,一個(gè)TOMCAT無(wú)論如何也不可能擔(dān)當(dāng)如此多的線程負(fù)載,而且JVM過(guò)大,其內(nèi)存管理成本將顯著加大。2G的內(nèi)存,做3-4個(gè)TOMCAT實(shí)例(512RAM*4),更為科學(xué)合理。

3、數(shù)據(jù)庫(kù)連接池,不少人,都推薦使用C3P0,能提高訪問(wèn)數(shù)據(jù)庫(kù)的并發(fā)性能好幾倍。

4、采用Tomcat集群可以最大程度的發(fā)揮服務(wù)器的性能,可以在配置較高的服務(wù)器上部署多個(gè)Tomcat,也可以在多臺(tái)服務(wù)器上分別部署Tomcat,Apache和Tomcat整合的方式還是JK方式。經(jīng)過(guò)驗(yàn)證,系統(tǒng)對(duì)大用戶量使用的響應(yīng)方面,Apache+3Tomccat集群> Apache+2Tomcat集群 > Apache集成Tomcat > 單個(gè)Tomcat。并且采用Apache+多Tomcat集群的部署方式時(shí),如果一個(gè)Tomcat出現(xiàn)宕機(jī),系統(tǒng)可以繼續(xù)使用,所以在硬件系統(tǒng)性能足夠優(yōu)越的情況下,需要盡量發(fā)揮軟件的性能,可以采用增加Tomcat集群的方式。

5、1. 設(shè)置MPM(Multi Processing Modules多道處理模塊)。ThreadPerChild,這個(gè)參數(shù)用于設(shè)置每個(gè)進(jìn)程的線程數(shù),在Windows環(huán)境下默認(rèn)值是64,最大值是1920,建議設(shè)置為100-500之間,服務(wù)器性能高的話值大一些,反之小一些。MaxRequestPerChild表示每個(gè)子進(jìn)程能夠處理的最大請(qǐng)求數(shù)。這個(gè)參數(shù)的值更大程度上取決于服務(wù)器的內(nèi)存,如果內(nèi)存比較大的話可以設(shè)置為很大的參數(shù),否則設(shè)置一個(gè)較小的值,建議值是3000.

2. 關(guān)閉DNS和名字解析 HostnameLookups off

3. 打開(kāi)UseCanonicalName模塊 UseCanonicalName on

4. 關(guān)閉多余模塊 一般來(lái)說(shuō),不需要加載的模塊有,mod_include.so、mod_autoindex.so、mod_access.so、mod_auth.so.

5. 打開(kāi)KeepAlive支持

KeepAlive on, KeepAliveTimeout 15 MaxKeepAliveRequests 1000

根據(jù)實(shí)際經(jīng)驗(yàn),通過(guò)Apache和Tomcat集群的方式提高系統(tǒng)性能的效果十分明顯,這種方式可以最大化的利用硬件資源,通過(guò)多個(gè)Tomcat的處理來(lái)分擔(dān)單Tomcat時(shí)的壓力。

web server允許的最大連接數(shù)還受制于操作系統(tǒng)的內(nèi)核參數(shù)設(shè)置,通常Windows是2000個(gè)左右,Linux是1000個(gè)左右。

總結(jié)

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

相關(guān)文章

最新評(píng)論

阜阳市| 徐汇区| 宁化县| 巩留县| 五华县| 商洛市| 城步| 浙江省| 民权县| 凉山| 大同市| 土默特右旗| 正阳县| 鹿邑县| 公安县| 灌云县| 霍林郭勒市| 将乐县| 扶余县| 华亭县| 兴国县| 平谷区| 银川市| 常宁市| 洪湖市| 搜索| 焦作市| 外汇| 英山县| 西乌珠穆沁旗| 江口县| 巴塘县| 邓州市| 清苑县| 昌乐县| 横山县| 仪陇县| 宜兰市| 广德县| 嘉义市| 孝义市|