精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

連接池要這么配,干貨收藏!

開發 前端
本篇總結了Tomcat,線程池,RestTemplate 的一些日常優化策略。平時應該多注意總結,在不同的情況下,優化參數均有不同。所以就要多一些測試,才能得到最好的配置。看完這些不妨在項目中試一下,增強記憶。

哈嘍,大家好,最近周邊的同事,鄰居逐漸都羊了。

而指北君還在堅挺碼字。等待陽的到來。

相信羊過之后,必是一片彩虹!

如果很多資源的使用如果不從共享資源池中獲取,極容易造成內存泄漏和內存溢出。要想實現高并發并且合理利用資源,大部分設計方案都會用到各種連接池,線程池等等。所有的可重復利用資源均從一組資源池中進行調用。也類似于近幾年火爆的共享經濟,然而共享經濟就和軟件設計中的共享資源池類似。不單獨持有某個資源,在需要使用的時候再去資源池中進行申請。

下面我們盤一盤各種資源共享池的一些配置,以及優化策略!

1、Tomcat中的各種connection

廢話少說,我們看一下一個簡單的SpringBoot tomcat配置

server:
tomcat:
accept-count: 500 //accept隊列長度
max-connections: 1000//最大連接數
threads:
max: 200 //最大工作線程數量
min-spare: 10 //最小工作線程數量

HTTP Connector

其工作流程如下:

  • 每個非異步請求都需要一個線程來處理,如果并發請求大于當前可處理的線程數量,則會創建額外的線程來處理,至多創建到maxThreads 的數量。
  • 此時仍然接收到更多的并發請求,Tomcat會接受新的connection,直到connection數到達最大數maxConnections。此時這些connection會在Connector中創建的 server socket中排隊,直到有線程可以來處理這些connection。
  • 一旦上面的排隊數量達到maxC onnections,然后還有新的請求進來,那么新進來的connection會在OS中排隊,操作系統提供的排隊數量為acceptCount。如果這個隊列滿了的話,后面進來的請求有可能被拒絕或者超時timeout

關于這個咱們講一個食堂干飯的例子:

  • 某學校有一個食堂,大廳里面日常至少擺100把椅子(min-spare)供學生們吃飯。
  • 然而當同時吃飯的同學大于100人的時候,食堂會增加一些椅子(創建線程),并且這些椅子也不會立馬收回去,一段時間沒有人使用才會收回。
  • 但是食堂里面最多可以擺500把椅子(maxThreads)。然后超過500人吃飯同時吃飯的話,其他人就只能在大廳里面排隊等別人吃完。食堂大廳里面可以容納1000人進行排隊等候(maxConnections)。
  • 當食堂大廳1000人都排滿了,那么就只能到食堂外面排隊了,外面排隊最多一直能排200人(acceptCount)。這個時候如果再有人過來要吃飯,而且還排不上隊,就會等到不耐煩(time out),也會有人來告訴后來的同學,別來了人都滿了,上其他地方吃飯去吧。(reject)

通過上面的例子,我相信大家都能清楚tomcat的一些基本參數配置作用,并且針對不同的情況進行調優了。

2 ThreadPool

關于Java線程池,大家都比較熟悉了吧。下面是基本參數

public ThreadPoolExecutor(
int corePoolSize, //核心線程數
int maximumPoolSize,//最大線程數
long keepAliveTime, //大于核心線程數量的線程存活時間,如果沒有新任務就會關閉
TimeUnit unit, // 時間單位
BlockingQueue<Runnable> workQueue, //線程等待隊列
ThreadFactory threadFactory,//創建線程的工廠
RejectedExecutionHandler handler//拒絕策略
){

線程池基本運行原理介紹

  • 提交任務給線程池后,線程池會檢查線程池中正在運行的線程數量,如果線程數量小于核心線程,則創建一個新的線程來處理任務。
  • 如果線程池中線程數量達到和corePoolSize的大小,則將線程放入等待隊列BlockingQueue中。
  • 如果提交任務時連等待隊列都已經滿了的話,線程池會繼續創建新的線程來處理任務,直到線程池數量達到maximumPoolSize。
  • 如果線程數量達到了最大容量,則會執行拒絕策略。

這里線程池的方案和tomcat Connector 的方案稍微有點不同。前者是先排隊然后再把池子容量擴大代最大,后者是先擴大池子,然后再排2個隊。

我覺得對于ThreadPoolExecutor線程池的理解,用工廠工人的例子比較好理解。

  • 有一家工廠建立,開始的時候只有10個工人,然后工廠的活越來越多,招聘新的工人肯定不是最好的策略,所以多出來的活暫時只能等著,進行排隊。(這個例子中工廠的活多了,立馬去招人肯定是不可能,只能先排單)
  • 后面工廠的業務越來越多,任務擠壓過多,原來的工人干活已經不能滿足業務需求了。為了最大化效益,招聘新的工人勢在必行,于是就招聘了新的工人,所有的工人一起來干活,加快效率。
  • 當工廠的工人數量達到飽和之后,仍然不停的新增業務,此時工廠已經飽和,沒有辦法再繼續接單。那么只能采取別的方案(拒絕策略),找別的工廠干,或者新建工廠。
  • 當后面業務量比較小的時候,新招的工人就會慢慢的裁剪(線程一段時間不使用就會關掉!)。

對線程池的優化思路:

  • 如果線程需要執行的任務耗時比較少,是High CPU類型,則核心線程數量可以根據CPU的核數來進行設置。最大線程數量也不應該設置的太大。線程隊列可以根據使用場景設置大一點,提高線程池效率。
  • 如果線程需要執行的任務耗時比較長,是High IO型,依賴其他系統,CPU需要等待的時間比較長,則核心線程數可以大一點,相應的線程隊列長度也應該針對不同的使用場景進行調整。
  • 線程數量也不宜設置過大,不然會導致頻繁的GC。

3、RestTemplate的坑與優化

SpringBoot微服務與其他Restful的資源進行交互的時候會使用到RestTemplate。如果你直接new RestTemplate,那么就需要特別注意了。使用不慎就會造成內存泄漏,引發GC等。

RestTemplate底層依舊是使用org.apache.http包下的HttpClient。

SpringBoot中可以通過PoolingHttpClientConnectionManager設置一些connection pool 的參數

PoolingHttpClientConnectionManager connectionPoolManager = new PoolingHttpClientConnectionManager();
connectionPoolManager.setMaxTotal(100);//最大連接數
connectionPoolManager.setDefaultMaxPerRoute(200);//

通過HttpRequestFactory可以設置connectTimeOut,connectionRequestTimeout,SocketTimeout

HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
httpRequestFactory.setConnectionRequestTimeout(3000);//獲取鏈接超時時間
httpRequestFactory.setConnectTimeout(3000);// 指客戶端和服務器建立連接的timeout
httpRequestFactory.setReadTimeout(120000);// 讀取數據的超時時間

小結一下比較重要的幾個參數如下:

maxTotal : 連接池里面的最大連接數

defaultMaxPerRoute  : 每個路由默認接收的最大連接數

socketTimeout :它是指客戶端和服務器建立連接后,客戶端從服務器讀取數據的超時時間,超出后會拋出SocketTimeOutException。

connectionRequestTimout:指從連接池獲取連接的timeout

connetionTimeout:指客戶端和服務器建立連接的timeout。

可以通過如下方式構建RestTemplate,其中的參數也可以自定以從配置文件中引入。

@Bean
public RestTemplate buildPoolingRestTemplate(RestTemplateBuilder builder){
PoolingHttpClientConnectionManager connectionPoolManager = new PoolingHttpClientConnectionManager();
connectionPoolManager.setMaxTotal(100);//最大連接數
connectionPoolManager.setDefaultMaxPerRoute(200);//每個路由默認接收的最大連接數

HttpClient httpClient = HttpClientBuilder.create()
.setConnectionManager(connectionPoolManager).build();

HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
httpRequestFactory.setHttpClient(httpClient);
httpRequestFactory.setConnectionRequestTimeout(3000);//獲取鏈接超時時間
httpRequestFactory.setConnectTimeout(3000);// 指客戶端和服務器建立連接的timeout
httpRequestFactory.setReadTimeout(120000);// socketTimeout 讀取數據的超時時間

return builder.requestFactory(()-> httpRequestFactory).build();
}

對于RestTemplate的一些建議

  • 應該從資源池中獲取RestTemplate(PoolingHttpClientConnectionManager)
  • 使用RestTemplateBuilder來創建RestTemplate
  • 針對maxTotal ,defaultMaxPerRoute  ,可以增大maxTotal以增大并發量,同時也需要調整每個路由的最大并發連接數,此時也可以提高某條路由的并發量。
  • connectionRequestTimeout和connectTimeout設置不要太長,socketTimeout根據需求可以設置相應的時間。

當然還有其他的一些優化的地方,比如使用不同的ConnectionKeepAliveStrategy等,設置maxIdleTime最大空閑時間等。

總結

本篇總結了Tomcat,線程池,RestTemplate 的一些日常優化策略。平時應該多注意總結,在不同的情況下,優化參數均有不同。所以就要多一些測試,才能得到最好的配置。看完這些不妨在項目中試一下,增強記憶。


責任編輯:武曉燕 來源: Java技術指北
相關推薦

2022-11-11 09:41:04

連接池微服務數據庫

2019-12-30 15:30:13

連接池請求PHP

2011-06-01 13:54:10

MySQL

2017-01-05 14:16:28

連接池數據代碼

2018-02-07 16:23:58

連接池內存池AI

2009-09-22 16:04:50

Hibernate連接

2009-09-22 14:52:55

Hibernate p

2009-06-17 16:22:45

Hibernate連接

2010-06-25 10:36:27

Java連接池

2020-02-03 15:15:27

Druid連接池性能超出競品

2015-04-27 09:50:45

Java Hibern連接池詳解

2009-07-15 11:00:48

proxool連接池

2009-06-17 09:59:46

Hibernate 連

2024-12-04 15:55:19

2009-06-24 07:53:47

Hibernate數據

2009-12-25 15:38:12

ADO連接池

2022-07-19 13:51:47

數據庫Hikari連接池

2021-03-24 09:06:01

MySQL長連接短連接

2010-01-04 16:24:07

ADO連接池

2011-05-13 09:34:51

TomcatMysql連接池
點贊
收藏

51CTO技術棧公眾號

日韩久久视频| 日本一区二区三区在线观看视频| 999精品视频| 日韩欧美国产系列| 欧美tickling网站挠脚心| www.成人av.com| 一级片中文字幕| 国产精品第12页| 涩涩视频在线观看免费| 青青草国产成人av片免费| 久久99国产精品久久久久久久久| 中文字幕乱码在线| av在线精品| 欧美午夜影院在线视频| 日本一区二区三区四区五区六区| 97中文字幕在线观看| a黄色在线观看| 亚洲激情国产| 深夜福利一区二区| 黄色激情在线观看| jizz欧美| 岛国精品视频在线播放| 中文字幕乱码免费| 国产网站在线播放| 久久精品动漫| 免费91在线视频| 欧美三级视频网站| 蜜桃a∨噜噜一区二区三区| 欧美变态tickling挠脚心| 污污视频网站免费观看| 91九色在线播放| 亚洲精品国产a| 一区二区三区|亚洲午夜| 人人九九精品| 91伊人久久大香线蕉| 岛国精品在线播放| 国模私拍一区二区国模曼安| 久久一级免费视频| 成年人av电影| 99久久人爽人人添人人澡| 欧美日韩一区中文字幕| 国产第一页视频| 女人高潮被爽到呻吟在线观看| 亚洲一区二区三区免费在线观看| 夜夜嗨av一区二区三区四季av | 国产精品亚洲一区二区在线观看 | 日韩视频在线播放| 国产成人三级在线观看视频| 激情文学综合丁香| 91精品国产综合久久香蕉最新版| 精品人妻一区二区三区潮喷在线 | 羞羞色午夜精品一区二区三区| 亚洲午夜性刺激影院| 日韩 欧美 视频| 国产网友自拍视频导航网站在线观看| 欧美国产精品劲爆| 午夜视频久久久| 中文字幕在线免费| 国产精品少妇自拍| 精品一区二区免费看| 最近免费中文字幕视频2019| 国产极品视频在线观看| 日本欧美视频| 爽爽爽爽爽爽爽成人免费观看| 手机毛片在线观看| 99精品小视频| 欧美一区二区三区小说| 五月六月丁香婷婷| 日韩成人视屏| 亚洲精品在线观| 欧美伦理视频在线观看| 欧美大片免费| 欧美三级视频在线| 亚洲欧美一区二区三区不卡| 91成人午夜| 日韩久久免费视频| 国产aaaaaaaaa| 亚洲91视频| 国模私拍一区二区三区| 国产超碰人人爽人人做人人爱| 麻豆亚洲精品| 成人免费视频网址| 黄色片一区二区| 91蜜桃婷婷狠狠久久综合9色| 日本亚洲导航| 精品美女在线观看视频在线观看| 亚洲精品成人在线| 亚洲一区二区三区av无码| 男女羞羞在线观看| 丝袜亚洲精品中文字幕一区| 国产福利第一视频| 变态另类ts人妖一区二区| 国内少妇毛片视频| 51午夜精品视频| 91在线小视频| 成人在线tv视频| 在线免费看a| 视频一区二区三区四区五区| 免费网站在线观看黄| www.日韩免费| 色综合久久九月婷婷色综合| 国产在线视频精品一区| 亚洲人成网站77777在线观看| 国产又粗又猛又爽| 亚洲优女在线| 91黄色免费版| 亚洲av午夜精品一区二区三区| 国产色播av在线| 欧美色手机在线观看| 成年人小视频在线观看| 大片网站久久| 中文字幕免费不卡在线| 成人综合色站| 91精彩视频在线观看| 欧美1—12sexvideos| 久久99这里只有精品| 久久99在线观看| 69av视频在线播放| 国产精品亚洲欧美在线播放| 91美女精品福利| 久久亚洲国产成人精品无码区| 精品欧美日韩精品| 亚洲电影免费观看高清完整版在线| 日本黄色三级大片| 国产精品亚洲欧美一级在线| 亚洲一级黄色av| 日本在线视频免费观看| 国产乱码精品一区二区三| 日韩国产精品一区二区| 丝袜诱惑一区二区| 亚洲第一视频网站| 欧美成人片在线观看| 精品亚洲欧美一区| 亚洲ai欧洲av| 国产精品亚洲成在人线| 日韩电影免费观看中文字幕| 亚洲国产精品午夜在线观看| 国产伦精品一区二区三区免费迷 | 人人爽人人av| 国产午夜一区| 亚洲人成亚洲人成在线观看图片| 亚洲一区三区| 欧美xxx网站| 中国成人一区| 亚洲天堂影视av| 亚洲欧美自拍视频| 91小视频免费观看| 91国视频在线| 希岛爱理av免费一区二区| 国语对白做受69| 污视频网站免费观看| 亚洲成人7777| 成人免费毛片在线观看| 婷婷视频一区二区三区| 欧美另类暴力丝袜| 国内精品国产成人国产三级| 一区二区三区.www| aaaaa黄色片| 伊人久久亚洲美女图片| 国产一区二区精品在线| 欧美xxxhd| 亚洲性线免费观看视频成熟| 中文在线观看免费高清| 国产精品久久久久9999吃药| www.51色.com| 国产综合婷婷| 久久免费99精品久久久久久| 另类图片综合电影| 一本大道亚洲视频| 国产精品怡红院| 亚洲一区在线观看免费观看电影高清| 成人久久久久久久久| 小嫩嫩12欧美| 国产精品亚洲精品| 在线观看xxx| 色菇凉天天综合网| 蜜桃视频最新网址| 国产成人高清在线| 国产99久久九九精品无码| 精品国产一区二区三区久久久蜜臀 | 成人高清免费在线| 欧美成人福利视频| 亚洲婷婷综合网| 中文字幕亚洲一区二区av在线 | 激情综合在线观看| 成人aaaa| 成人三级在线| 欧美xnxx| 欧美激情一区二区三区成人| 欧洲免费在线视频| 制服视频三区第一页精品| 日本一本高清视频| 国产精品人成在线观看免费| 国产精品熟妇一区二区三区四区 | 欧洲亚洲精品视频| 日韩视频永久免费| 免费看毛片网站| 一区二区三区中文字幕在线观看| 久久久久国产精品区片区无码| 久久国产日韩欧美精品| 自拍日韩亚洲一区在线| 手机在线电影一区| 久久精品人成| 日韩欧美一级| 国产精品久久久久一区二区 | 一区二区三区四区日韩| 蜜桃999成人看片在线观看| avtt久久| 国产精品色婷婷视频| zzzwww在线看片免费| 精品国产一区久久久| 欧美男男同志| 精品美女一区二区三区| 在线免费观看高清视频| 狠狠躁天天躁日日躁欧美| 青青草成人免费| 中文字幕精品在线不卡| 三叶草欧洲码在线| 97久久精品| 欧美a级成人淫片免费看| 成人国产精品免费网站| 色www精品视频在线观看| 粉嫩av免费一区二区三区| 日韩欧美一中文字暮专区| 美女久久久久久久| 自拍视频在线| 国产午夜一区二区| 亚洲av成人精品一区二区三区在线播放 | 国产精品爽黄69天堂a| 欧美两根一起进3p做受视频| 午夜老司机在线观看| 亚洲欧美福利视频| 欧美熟女一区二区| 日韩精品一区二区三区中文精品| 一区不卡在线观看| 欧美午夜电影在线播放| 欧美超碰在线观看| 欧美日韩在线免费| 国产区一区二区三| 欧美性猛交xxxx富婆| 日韩久久精品视频| 午夜在线电影亚洲一区| 国产亚洲精品久久777777| 一区二区三区中文在线| 欧美日韩色视频| 亚洲欧洲综合另类| 久久福利免费视频| 亚洲日韩欧美一区二区在线| 国精产品一区一区二区三区mba| 国产精品乱子久久久久| 人妻无码一区二区三区免费| 亚洲欧洲精品天堂一级| 一级性生活免费视频| 亚洲欧美偷拍三级| 久久久久久久国产精品毛片| 亚洲国产一区二区三区青草影视 | 噜噜噜噜噜在线视频| 精品亚洲一区二区三区| 青青草在线视频免费观看| 亚洲精品综合久久中文字幕| 黄网在线免费| 亚洲国产综合91精品麻豆| 国产一级中文字幕| 性做久久久久久| 欧美日韩综合一区二区三区| 色一情一乱一乱一91av| 自拍偷拍福利视频| 91精品国产91久久综合桃花| 亚洲欧美黄色片| 精品亚洲一区二区三区四区五区| 国产视频三级在线观看播放| 最新国产精品拍自在线播放| av在线免费网址| 久久久久久香蕉网| 成人激情综合| 91日韩在线视频| 精品国产午夜肉伦伦影院| 日本免费高清一区二区| 亚洲精品成人无限看| 国产免费黄色一级片| 视频一区在线播放| 91视频福利网| 久久综合国产精品| 国产成人精品视频免费| 亚洲国产一区二区三区青草影视| 欧美一区二区三区网站| 666欧美在线视频| 色播色播色播色播色播在线| 最新中文字幕亚洲| 国产精品—色呦呦| 国产精品久久久久久一区二区| 超碰精品在线| 亚洲视频小说| 一区二区精品| 狠狠干视频网站| 亚洲制服少妇| 日韩国产欧美亚洲| 午夜在线视频观看日韩17c| 欧美成人一区二区三区片免费| 日本一区二区不卡高清更新| 亚洲一区二区激情| 91精品国产乱码久久久久久久| 中文字幕日韩av| 伦av综合一区| 69堂亚洲精品首页| 青青久草在线| 欧美黑人狂野猛交老妇| 中文字幕在线播放视频| 视频二区欧美毛片免费观看| 久久精品99| 亚洲精品国产成人影院| 1024精品视频| 国产成人8x视频一区二区| 一区二区黄色片| 亚洲精品国产精品粉嫩| 精品成人久久| 人妻av中文系列| 国产美女精品一区二区三区| av女人的天堂| 精品国产91乱高清在线观看| av手机免费看| 日韩视频在线观看免费| 51一区二区三区| 欧美成人一区二区在线| 亚洲精一区二区三区| 自拍偷拍激情视频| 蜜桃久久久久久| 97伦伦午夜电影理伦片| 亚洲一区中文日韩| 国产99对白在线播放| 日韩在线小视频| 精品无人乱码一区二区三区 | 亚洲丝袜啪啪| 日本a视频在线观看| 国产激情偷乱视频一区二区三区| 久久成年人网站| 欧美国产日本韩| 狠狠人妻久久久久久综合| 日韩精品免费在线视频| 国产黄大片在线观看| 91在线看网站| 欧美精品九九| 手机在线播放av| 一区二区三区日韩欧美精品| av天堂一区二区三区| 欧美另类老女人| 91成人精品在线| 国产亚洲黄色片| 99re8在线精品视频免费播放| 精品无码人妻一区二区三区品| 欧美成人aa大片| 久久久久黄久久免费漫画| 国产欧美一区二区三区另类精品| 亚洲承认在线| 最近中文字幕无免费| 精品久久久久久久久久久久久久| 日韩av资源| 中文字幕一区av| 国产一级理论片| 日韩av在线影院| 欧美极品免费| 亚洲一级免费视频| 久久无码专区国产精品s| 国产亚洲一本大道中文在线| 欧美高清69hd| 久久夜色撩人精品| 午夜日韩影院| 国产中文字幕视频在线观看| 久久精品网站免费观看| 中文字幕永久免费视频| 欧美成人sm免费视频| 国内精品国产成人国产三级粉色 | 日本欧美大码aⅴ在线播放| 女人裸体性做爰全过| 日韩欧美国产一二三区| 女人让男人操自己视频在线观看 | 亚洲综合色激情五月| 日韩一级在线| 国产黄色录像视频| 日韩一区二区精品| 校园春色亚洲| 中文字幕在线中文字幕日亚韩一区 | 亚洲一区二区三区三| 欧美黄色小说| 久久久亚洲影院| 精品国产视频| 最新日本中文字幕| 欧美在线免费观看视频| 成人影院在线观看| 欧美xxxx黑人又粗又长精品| 久久99久久99小草精品免视看| 国产无遮挡又黄又爽| 在线观看精品自拍私拍| 中文字幕一区二区三区日韩精品| 免费高清在线观看免费| 国产精品久久久久四虎| 亚洲欧美色视频| 亚洲一区二区三区777| 久久狠狠一本精品综合网| 青娱乐av在线|