精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲美女av网站| 亚洲成人激情综合网| 国产日韩综合一区二区性色av| 成人18视频免费69| 中文无码日韩欧| 精品久久久国产| 欧美一区二区三区精美影视 | 国产一区二区色| 久草视频手机在线观看| 亚洲制服一区| 欧美一区二区三区公司| 国产精品97在线| 4438x成人网全国最大| www日韩大片| 亚洲自拍小视频| 欧美一区二区三区久久久| 国产一区激情| 这里只有精品丝袜| 亚洲熟女乱综合一区二区三区| 久久av影院| 五月天视频一区| 91麻豆天美传媒在线| 国产中文字幕在线观看| 成人听书哪个软件好| 国产精品一久久香蕉国产线看观看| 精品少妇久久久久久888优播| 全球成人免费直播| 亚洲欧美日韩精品久久| 日本一区二区免费视频| 91精品国产一区二区在线观看| 丁香五六月婷婷久久激情| 中文字幕の友人北条麻妃| lutube成人福利在线观看| 99久久精品免费看| 国产不卡一区二区三区在线观看| 夜夜嗨av禁果av粉嫩avhd| 久久精品道一区二区三区| 久久免费视频在线观看| 印度午夜性春猛xxx交| 大胆日韩av| 一区二区三区 在线观看视| 亚洲天堂成人av| 老牛影视av一区二区在线观看| 日韩一区二区三区av| www.色欧美| 四虎成人精品一区二区免费网站| 色欧美日韩亚洲| 可以免费观看av毛片| 伊人久久精品一区二区三区| 欧美日韩国产综合新一区 | 性xxxxfjsxxxxx欧美| 国产精品欧美经典| 亚洲在线欧美| 国产在线观看a视频| 中文字幕一区二区三区视频| 亚洲一一在线| 伦xxxx在线| 亚洲特黄一级片| 欧美一级黄色录像片| 国产区在线观看| 亚洲乱码中文字幕| 国产欧美久久久久| 成人高潮aa毛片免费| 亚洲精品伦理| 国产精品视频yy9299一区| 三区精品视频| 91在线视频免费看| 中文字幕在线观看一区| 特色特色大片在线| 手机av在线播放| 午夜天堂影视香蕉久久| 精品国产一二三四区| jizz内谢中国亚洲jizz| 欧美综合视频在线观看| 久热精品在线播放| 久久99成人| 日韩h在线观看| 亚洲性猛交xxxx乱大交| 欧美oldwomenvideos| 精品国内产的精品视频在线观看| 青草影院在线观看| 狠狠爱综合网| 欧美最猛黑人xxxx黑人猛叫黄| 一二三区免费视频| 国模大尺度一区二区三区| 91免费观看| 久久视频www| 亚洲人精品一区| 日韩精品福利片午夜免费观看| 视频在线这里都是精品| 欧美日韩国产中文精品字幕自在自线 | 亚洲精品久久久中文字幕| 亚洲国产精选| 亚洲福利视频免费观看| 无码人妻丰满熟妇啪啪欧美| 91精品天堂福利在线观看| 久久久久国产精品一区| 国产黄色免费视频| 国产成人综合在线观看| 青青草国产精品| 在线你懂的视频| 色婷婷综合在线| 91av免费观看| sdde在线播放一区二区| 久久久久成人精品| 伊人22222| 成人黄色大片在线观看 | 另类av一区二区| 亚洲精品女av网站| 牛牛热在线视频| 一区二区三区高清不卡| 另类小说色综合| 国产欧美啪啪| 欧美xxxx综合视频| 波多野结衣黄色| k8久久久一区二区三区 | 影音先锋日韩资源| 国产精品视频99| 五月婷婷在线观看视频| 一区二区视频在线看| 亚洲乱码国产一区三区| 欧美人妖视频| 欧美激情a在线| 91精品视频免费在线观看| 久久婷婷一区二区三区| 欧美大黑帍在线播放| 96sao精品免费视频观看| 亚洲午夜精品久久久久久久久久久久| 久久成人在线观看| 狠狠狠色丁香婷婷综合久久五月| 欧美国产综合视频| 精品捆绑调教一区二区三区| 欧美一区二区在线免费播放| 一级片黄色录像| 老司机免费视频久久| 国产在线精品二区| 久久免费电影| 日韩西西人体444www| 中文字幕电影av| 另类的小说在线视频另类成人小视频在线 | 91亚洲国产成人久久精品麻豆| 久久婷婷成人综合色| 欧美 日韩 国产在线观看| 大陆精大陆国产国语精品 | 伊人色综合一区二区三区影院视频 | 亚洲乱码国产乱码精品精软件| 亚洲视频一区在线观看| 中文字幕在线视频精品| 日韩欧美综合| 国产综合久久久久| 日本网站在线免费观看视频| 欧美日韩五月天| 日本裸体美女视频| 狠狠狠色丁香婷婷综合激情| 正在播放国产精品| 国产999精品在线观看| 久久精品国产v日韩v亚洲| 国产一区二区三区黄片| 亚洲欧美一区二区三区极速播放| 中文字幕55页| 欧美日韩a区| 国内精品视频在线播放| 国产伦久视频在线观看| 亚洲欧美精品在线| 天堂免费在线视频| 国产精品福利在线播放| 波多野结衣中文字幕在线播放| 午夜天堂精品久久久久| 精品日产一区2区三区黄免费| 亚洲女同志freevdieo| 亚洲图片在区色| 97精品人妻一区二区三区在线| 亚洲激情图片一区| 中文字幕一区二区人妻电影丶| 免费日韩一区二区| 亚洲ai欧洲av| 国产精品美女久久久久| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 久久一区二区三区欧美亚洲| 你懂得影院夜精品a| 久久精品免费播放| 日韩中文字幕影院| 欧美在线你懂得| 欧美卡一卡二卡三| 91丨porny丨最新| 亚洲精品手机在线观看| 在线看片一区| 日韩亚洲欧美精品| 1313精品午夜理伦电影| 日韩av三级在线观看| gogo在线观看| 亚洲欧洲午夜一线一品| 国产剧情久久久| 亚洲国产精品一区二区久久恐怖片| 瑟瑟视频在线观看| 国产精品白丝jk黑袜喷水| 日本不卡在线观看视频| 亚洲在线久久| 免费在线国产精品| 精品久久亚洲| 国产精品黄色av| 91黄页在线观看| 久久精品亚洲一区| 日本大臀精品| 精品国产一区二区三区不卡| 中文字幕av网站| 高跟丝袜一区二区三区| 欧美三级日本三级| 国产精品私人影院| 国产精品jizz| 成人一区二区视频| 国产乱叫456| 日本午夜精品视频在线观看| 黄色一级片在线看| 99久久国产综合精品成人影院| 狼狼综合久久久久综合网| 日韩在线精品强乱中文字幕| 国产精品久久9| 欧美日韩国产观看视频| 久久99热精品这里久久精品| 在线a人片免费观看视频| 亚洲男人天堂2023| 丰满人妻一区二区| 欧美一区二区三区免费观看视频| 久久久久久亚洲av无码专区| 精品女同一区二区三区在线播放 | 幼a在线观看| 亚洲精品一区二区在线| 人妻视频一区二区三区| 日韩视频免费观看高清在线视频| 中文字幕人妻色偷偷久久| 日韩欧美国产免费播放| 日韩精品国产一区二区| 亚洲一区二区av电影| www欧美com| 亚洲欧美一区二区三区孕妇| 国产探花视频在线| 国产精品污污网站在线观看 | 亚洲另类一区二区| 男人的午夜天堂| ●精品国产综合乱码久久久久| 久久精品三级视频| 国产精品免费视频一区| 亚洲高潮女人毛茸茸| 日本一区二区三区免费乱视频| 最近中文字幕免费| 久久精品在线免费观看| 人妻少妇无码精品视频区| 国产亚洲精品资源在线26u| 亚洲AV无码片久久精品| 国产香蕉久久精品综合网| 亚洲天堂久久新| 久久久久久久综合日本| 人人人妻人人澡人人爽欧美一区| 国产日韩高清在线| 欧美日韩生活片| 国产精品大尺度| 亚洲波多野结衣| 亚洲免费在线视频一区 二区| 99久久婷婷国产综合| 一二三区精品福利视频| 久久露脸国语精品国产91| 狠狠色狠色综合曰曰| 草莓视频18免费观看| 欧美三级视频在线播放| 国产伦精品一区二区三区四区| 欧美一区二区三区婷婷月色| 成人无码一区二区三区| 日韩电视剧免费观看网站| 免费在线毛片| www.午夜精品| 国产福利在线免费观看| 日韩女优人人人人射在线视频| 日韩av超清在线观看| 91麻豆国产精品| 国产一级成人av| 午夜精品一区二区在线观看的| 一个色综合网| 国模无码视频一区二区三区| 日本免费在线视频不卡一不卡二| 91看片破解版| 99这里只有精品| www中文在线| 性感美女极品91精品| 日韩国产成人在线| 日韩午夜精品视频| 激情在线视频| 久久躁狠狠躁夜夜爽| 亚洲精品永久免费视频| 91在线直播亚洲| 亚欧洲精品视频在线观看| 伊人久久大香线蕉av一区| 好看不卡的中文字幕| 日本在线观看免费视频| 成人h动漫精品一区二区| jizz18女人高潮| 亚洲va韩国va欧美va| 中文字幕免费在线看| 精品久久久久香蕉网| 成年人在线观看视频| 午夜精品久久久久久久99热| 欧美系列精品| 欧美日韩一区在线播放| 黑丝一区二区三区| www.色欧美| 久久久精品免费网站| 精品无码一区二区三区电影桃花 | 全国男人的天堂网| www亚洲精品| 校园春色亚洲色图| 国产一区二区三区高清视频| 欧美电影一区| 少妇激情一区二区三区| av网站一区二区三区| 久热这里有精品| 欧美精品一二三四| 国产网站在线播放| 26uuu另类亚洲欧美日本一 | 亚洲第一区中文字幕| 麻豆影视在线观看_| 国产精品第8页| 亚洲免费专区| 国产最新免费视频| 波多野结衣一区二区三区 | 91官网在线| 2019av中文字幕| 精品午夜电影| 国产精品999视频| 岛国av在线一区| 久久久久久久福利| 日韩一级黄色大片| 菠萝蜜视频国产在线播放| 国产综合香蕉五月婷在线| 韩日一区二区三区| 日韩 欧美 高清| 久久女同精品一区二区| 中文字幕国产在线观看| 日韩成人av在线| 中文字幕乱码中文乱码51精品| 国产精品三区www17con| 一区福利视频| 中文字幕乱视频| 亚洲超丰满肉感bbw| 日韩在线视频免费| 2019亚洲男人天堂| 亚洲宅男网av| 国产自偷自偷免费一区| 国产拍揄自揄精品视频麻豆| 在线观看国产区| 视频在线观看99| va天堂va亚洲va影视| 91九色国产ts另类人妖| 国产精品一卡二卡| 久久亚洲精品大全| 亚洲第一男人av| 免费毛片b在线观看| 欧美精品一区二区三区四区五区| 免费看亚洲片| 人人艹在线视频| 欧美一区二区在线不卡| 中日韩高清电影网| 精品乱码一区| 视频一区国产视频| 特一级黄色录像| 亚洲国产精品久久久久久| 性孕妇free特大另类| 日韩精品伦理第一区| 精品亚洲成a人在线观看| 久久久久香蕉视频| 日韩精品免费视频| 黄色欧美视频| 日韩在线视频在线| 久久久久久久久久看片| 伊人网视频在线| 九九综合九九综合| 亚洲第一论坛sis| 亚洲色图偷拍视频| 亚洲成a人v欧美综合天堂| 高清国产福利在线观看| 91国产丝袜在线放| 麻豆91精品| 久久久久亚洲av无码专区体验| 亚洲精品www久久久久久广东| 影视一区二区三区| 少妇久久久久久被弄到高潮| 久久这里只有精品6| 97视频免费在线| 2019日本中文字幕| 久久久久久久久久久妇女| 中文在线永久免费观看| 欧美精品久久99| 亚洲天堂资源| 97碰在线视频| 欧美国产精品一区二区三区| 狠狠躁夜夜躁av无码中文幕| 国产精品高清在线观看| 狠狠入ady亚洲精品经典电影| 人与嘼交av免费| 亚洲精品在线免费播放| 人人精品久久|