成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

連接池中非常關鍵的兩個參數,到底是干啥用的?

開發 前端
說來慚愧,從事互聯網開發好些年了,有些概念一直沒有徹底搞清楚。其中之一就是,ttp client配置連接池的時候,maxConnectionsPerHost,和maxTotalConnections,在網上搜了一圈,發現很多都講的含含糊糊的。

 背景

說來慚愧,從事互聯網開發好些年了,有些概念一直沒有徹底搞清楚。其中之一就是,ttp client配置連接池的時候,maxConnectionsPerHost,和maxTotalConnections,在網上搜了一圈,發現很多都講的含含糊糊的。而且有不少故障都是這兩個參數設置不合理,或者壓根就沒有設置maxConnectionsPerHost等等。

題外話,我記得我剛參加工作的時候,第一次使用http client。看見項目中,配置的連接池,有maxConnectionsPerHost,我就請教同事,這個參數是干啥的。他的答復是每條路由最大的連接數。我似懂非懂,但是又不敢多問,哈哈。

 

分析過程

maxTotalConnections,很好理解。既然是一個連接池,那么一個池子最大能放多少呢?這個參數默認是20。當然這個參數,在不同的連接池實現中可能是不一樣,這不是我關注的重點。

 

連接池中非常關鍵的兩個參數,到底是干啥用的?

 

maxConnectionsPerHost,表示一個連接池中,每條路由,池化的最大連接個數。這個值,默認是2,我看過不少故障是沒有設置此值導致的。這個不是我關注的重點,我的疑問是,什么是路由?什么是連接?路由和連接的關系是啥?

首先連接是什么?這個概念很清晰,連接就是源ip:源端口加目的ip:目的端口,以及相關信息形成的邏輯概念。

那什么是路由呢?我的腦袋,一團混亂。網上也沒有比較好的文章,能解答我的疑問。我的猜測是,目的host+port端口就是路由。比如你的項目中需要訪問百度。那么baidu.com+80就是一條路由。同時也需要訪問csdn,那么csdn.net+80也是一條路由。可是這只是我的猜測。

那看看源碼吧。不同版本的http client實現方式是不一樣的。我手頭的項目有3.x,也有4.x的。我都簡單看了下,但是源碼都有一個問題是,route的實現類中,既有host,也有localAddress。

 

連接池中非常關鍵的兩個參數,到底是干啥用的?

 

為了繼續解答我的疑問,還是直接debug。簡單寫了一個單元測試,類似這樣。

 

連接池中非常關鍵的兩個參數,到底是干啥用的?

 

然后我看到了這樣的信息,以3.x源碼為例子,4.x原理是一致的。

 

連接池中非常關鍵的兩個參數,到底是干啥用的?

 

獲取連接的過程,HostConfiguration 雖然其中有本地的地址信息的,但是值是空的。因此route真正起作用的是host。

 

連接池中非常關鍵的兩個參數,到底是干啥用的?

 

獲取好連接后,檢查下連接是不是打開了,如果沒有打開,執行open方法,此時會設置localAddress。也就是一條真正的連接才算創建完成。

接下來我們看下Http的連接池,有數據的情況是啥樣。

 

連接池中非常關鍵的兩個參數,到底是干啥用的?

 

至此我們就清晰了,連接池是以host(遠端的服務,例如baidu.com)為組,來建立連接池。maxConnectionsPerHost 用來控制一組中連接池的個數,也就是有些同學提到的,用來控制訪問某個服務并發的個數。

結論

maxConnectionsPerHost,連接池是以host(遠端的服務,例如baidu.com)為組,來建立連接池。此參數用來控制一組中連接池的個數,或者用來控制訪問,某個服務并發的個數。

需要注意默認值是2,如果不設置此值。但是流量變大,那么線上故障就會等著你。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2021-08-13 05:47:48

通信設計院通信行業設計院

2010-03-18 14:22:46

Python數據庫連接

2022-09-26 07:08:16

無線通信CT

2025-04-29 00:00:00

超節點SuperPod大模型

2022-04-10 19:26:07

TypeScript類型語法

2021-12-16 15:11:59

Facebook天秤幣加密貨幣

2022-09-06 21:38:45

數字人數字孿生

2024-08-26 14:23:56

2024-07-12 15:08:23

Python@wraps函數

2021-03-22 07:45:05

Sentinel微服務開源的項目

2020-10-25 20:05:29

Pythonyield開發

2022-02-16 20:04:08

容器KubernetesShim

2024-02-22 08:00:00

SoraOpenAI

2022-08-08 08:00:00

人工智能機器學習計算機應用

2020-04-22 13:29:35

基帶射頻信號

2024-02-07 12:35:00

React并發模式concurrent

2021-01-29 12:24:22

電腦電子計算機

2012-02-13 15:50:59

2024-07-03 12:04:42

C++this?

2020-09-21 15:16:09

大數據IT技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本人做爰大片免费观看一老师 | 国产成人精品一区二区 | av免费在线观看网站 | 国产一区h| 成人在线免费视频 | 午夜精品一区二区三区免费视频 | 特黄色一级毛片 | 狠狠婷婷综合久久久久久妖精 | 欧美黄 片免费观看 | 91网视频 | 天堂亚洲网 | 成人av一区 | 亚洲天堂免费在线 | 产真a观专区 | 欧美日韩成人在线观看 | 日韩视频在线免费观看 | 日本黄色一级视频 | 伊人久久综合 | 久久久tv| h视频在线免费观看 | 欧美aaa一级片 | 日韩欧美在线一区 | 国产日韩一区二区三免费高清 | 久久91 | 精品国产三级 | www.一区二区三区 | 成人啊啊啊 | 精品日韩欧美一区二区 | 四虎永久免费黄色影片 | 欧美色影院 | 精品国产精品三级精品av网址 | 日韩国产一区二区三区 | 91麻豆精品国产91久久久久久 | 国产在线永久免费 | 九色 在线 | 综合色婷婷 | 欧美国产精品一区二区三区 | 欧美亚洲国产日韩 | 日本天天操 | 一级黄色片毛片 | 99精品免费在线观看 |