php高并发网站指的是什么意思
小編給大家分享一下php高并發(fā)網(wǎng)站指的是什么意思,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
高并發(fā)(High Concurrency)通常是指通過設(shè)計保證系統(tǒng)能夠同時并行處理很多請求。
一般來說,解決WEB高并發(fā)的有效手段都是采用可線性擴展的多層分布式架構(gòu),我生產(chǎn)項目的架構(gòu)是這樣的,就在這里拋磚引玉一下。
Webserver (Nginx) :
這一層是可以輕松分布式部署的,結(jié)合智能DNS解析可以簡易地防止單點故障、實現(xiàn)區(qū)域訪問加速,結(jié)合LVS很容易實現(xiàn)負(fù)載均衡。
這一層主要是負(fù)責(zé)處理靜態(tài)請求和轉(zhuǎn)發(fā)PHP請求至第二層的PHP處理節(jié)點,至于靜態(tài)資源地址(http://misc.xxxx.com)可以單獨拿出來部署,或者直接使用商用的云存儲服務(wù)(國內(nèi)七牛不錯,國外有Amazon S3)
PHP處理節(jié)點:
一個節(jié)點其實就是一個監(jiān)聽特定端口的系統(tǒng)進(jìn)程,webserver的請求通過負(fù)載均衡器(我用的AWS的loadbalancer)進(jìn)行分發(fā),很好實現(xiàn)分布式和負(fù)載均衡。
我現(xiàn)在用的還是php自帶的php-fpm,其實facebook出的hhvm性能非常強悍,但是還不能100%通過我項目的單元測試,等hhvm成熟過后可以平滑替換
高速緩存:
用的memcached,這一層的作用主要是減輕數(shù)據(jù)庫IO和加快熱數(shù)據(jù)訪問,緩存策略與程序耦合度較高,不贅述,但簡單地說有兩種方式,一種是在程序的全局層面加一個緩存處理,這種方法代碼耦合度低,但是有效命中率不高,有些項目不一定適應(yīng),另一種是在具體的數(shù)據(jù)存取處加緩存處理,這種辦法程序耦合度較高,但是緩存命中率非常高,幾乎沒有無效緩存存在,我用的是這種。
數(shù)據(jù)庫 :
我現(xiàn)在的項目數(shù)據(jù)規(guī)模不大,暫時只用了單臺數(shù)據(jù)庫,但是程序邏輯上已做好了數(shù)據(jù)庫線性擴展的準(zhǔn)備。
其實數(shù)據(jù)庫層的擴展是老生常談了,常用手段是分庫分表,這一塊需要在前期的代碼就打下基礎(chǔ),另外更平滑地手段是使用中間件,比如360的Atlas,阿里巴巴的cobar,淘寶的TDDL,中間件可以在不大范圍變更代碼的情況下擴展,但是具體的使用場景還是有限的,具體項目還需單獨考察。
其他:
根據(jù)不同的項目,架構(gòu)還可以選擇性地使用隊列,我現(xiàn)在用的beantalkd,Redis也是一個很好的選擇。隊列常用的使用環(huán)境是郵件發(fā)送和站內(nèi)消息推送上面,但是在某些場景下也可以作為核心數(shù)據(jù)庫的緩沖,對應(yīng)對大并發(fā)或者突發(fā)性流量也是不錯的選擇
總結(jié)
以上是生活随笔為你收集整理的php高并发网站指的是什么意思的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python打开视频_Python读取
- 下一篇: 2020支付宝和谐福怎么扫出来 2020