Q1: 如何理解池化技術? 我的理解是: 比如連接池,就是將連接看作一個資源,放到一個pool里,有一個調度器(不知道這個說法正不正確)根據請求來調度這些連接。連接池的作用是避免每一次使用都要建立連接、銷毀連接等這方面的開銷。
Q2: php-fpm 可以算是一個連接池嗎? 如果 Q1 我的理解正確,那么 php-fpm 算連接池嗎? 因為我有看到 php-fpm 會有一個 pool.d 的目錄。 如果 php-fpm 算,那么 fastcgi 的其他實現也都算嗎? nginx 的 master worker 進程算嗎?
Q3: 除了連接池,還有其他的池化技術嗎?
3 回答

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
Q1:你說的這個是一個方面,我認為還是并發量的限制才會帶來“池化”技術,假如mysql只能維持256個長連接,但是我們有1000000個用戶每天嗷嗷待哺,那么就得幫mysql請一個經紀人,不管多少人訪問,mysql本體都不需要一直處理連接,只需要管好怎么處理數據庫相關的部分就好了(仔細想想,這樣事務獨立性不就被打破了么....)。
Q2:php-fpm不是連接池(網絡的),大概可以叫:進程池(本地的)。
Q3:只要是有限的資源,都可以被“池化”。
個人主觀觀點,僅供參考,如有不足,評論交流~

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
php-fpm就是fastgi協議的的實現,另外還有內存池、線程池等,php-fpm和nginx master process一方面屬于算進程管理器,需要的時候才fork新的進程,當然預設部分也就是進程池了,池化的技術可以這么理解,預設一部分資源,需要的時候直接使用,避免創建過程的開銷
添加回答
舉報
0/150
提交
取消