在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  PHP  Linux  網(wǎng)絡(luò)安全/ 如何理解池化技術(shù)?

如何理解池化技術(shù)?

Q1: 如何理解池化技術(shù)?
我的理解是:
比如連接池,就是將連接看作一個資源,放到一個pool里,有一個調(diào)度器(不知道這個說法正不正確)根據(jù)請求來調(diào)度這些連接。連接池的作用是避免每一次使用都要建立連接、銷毀連接等這方面的開銷。

Q2: php-fpm 可以算是一個連接池嗎?
如果 Q1 我的理解正確,那么 php-fpm 算連接池嗎? 因為我有看到 php-fpm 會有一個 pool.d 的目錄。
如果 php-fpm 算,那么 fastcgi 的其他實現(xiàn)也都算嗎? nginx 的 master worker 進程算嗎?

Q3: 除了連接池,還有其他的池化技術(shù)嗎?

回答
編輯回答
墨小羽

java是內(nèi)存常駐語言,池化技術(shù)比較常見,一般池化技術(shù)用在有效控制資源和復(fù)用而節(jié)約系統(tǒng)資源開銷;比如
1、假設(shè)每一個請求需要操作dba,這個時候每一個并發(fā)都需要一個數(shù)據(jù)庫鏈接session,如果系統(tǒng)并發(fā)很大,假設(shè)1000,沒有池化技術(shù)就會同時有1000個session,這很容易導(dǎo)致系統(tǒng)資源崩潰。用上池化技術(shù)后,設(shè)置池中最大數(shù)量上限,高并發(fā)下就限制了數(shù)據(jù)庫連接session最大數(shù)量了,池化技術(shù)核心是復(fù)用,這也就不存在session頻繁創(chuàng)建和銷毀而浪費系統(tǒng)資源,另外一般池化技術(shù)幾乎都是放在內(nèi)存中,所以尋找和管理的效率相當(dāng)高,幾乎沒有io方面導(dǎo)致的性能問題。

2、另外java中還有線程池概念,復(fù)用線程用的;高并發(fā)下,既可以有效控制住系統(tǒng)線程過多,也避免了線程創(chuàng)建和銷毀浪費系統(tǒng)資源。


5年沒有搞php開發(fā)了,對于php5后面發(fā)展出來的技術(shù)已經(jīng)沒有任何了解,見諒不懂php-fpm

2017年12月29日 22:01
編輯回答
賤人曾

php-fpm就是fastgi協(xié)議的的實現(xiàn),另外還有內(nèi)存池、線程池等,php-fpm和nginx master process一方面屬于算進程管理器,需要的時候才fork新的進程,當(dāng)然預(yù)設(shè)部分也就是進程池了,池化的技術(shù)可以這么理解,預(yù)設(shè)一部分資源,需要的時候直接使用,避免創(chuàng)建過程的開銷

2017年5月16日 23:02
編輯回答
澐染

Q1:你說的這個是一個方面,我認(rèn)為還是并發(fā)量的限制才會帶來“池化”技術(shù),假如mysql只能維持256個長連接,但是我們有1000000個用戶每天嗷嗷待哺,那么就得幫mysql請一個經(jīng)紀(jì)人,不管多少人訪問,mysql本體都不需要一直處理連接,只需要管好怎么處理數(shù)據(jù)庫相關(guān)的部分就好了(仔細想想,這樣事務(wù)獨立性不就被打破了么....)。

Q2:php-fpm不是連接池(網(wǎng)絡(luò)的),大概可以叫:進程池(本地的)。

Q3:只要是有限的資源,都可以被“池化”。

個人主觀觀點,僅供參考,如有不足,評論交流~

2017年11月12日 20:54