国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

用 PHP 編寫支持高并發(fā)的網(wǎng)站,需要做什么處理

原創(chuàng) 2016-10-29 16:18:07 529
摘要:一般來說,解決WEB高并發(fā)的有效手段都是采用可線性擴(kuò)展的多層分布式架構(gòu),我生產(chǎn)項(xiàng)目的架構(gòu)是這樣的,就在這里拋磚引玉一下。Webserver (Nginx)  :這一層是可以輕松分布式部署的,結(jié)合智能DNS解析可以簡易地防止單點(diǎn)故障、實(shí)現(xiàn)區(qū)域訪問加速,結(jié)合LVS很容易實(shí)現(xiàn)負(fù)載均衡。這一層主要是負(fù)責(zé)處理靜態(tài)請求和轉(zhuǎn)發(fā)PHP請求至第二層的PHP處理節(jié)點(diǎn),至于靜態(tài)資源地址(http://misc

一般來說,解決WEB高并發(fā)的有效手段都是采用可線性擴(kuò)展的多層分布式架構(gòu),

我生產(chǎn)項(xiàng)目的架構(gòu)是這樣的,就在這里拋磚引玉一下。

Webserver (Nginx)  :這一層是可以輕松分布式部署的,結(jié)合智能DNS解析可以簡易地防止單點(diǎn)故障、實(shí)現(xiàn)區(qū)域訪問加速,結(jié)合LVS很容易實(shí)現(xiàn)負(fù)載均衡。這一層主要是負(fù)責(zé)處理靜態(tài)請求和轉(zhuǎn)發(fā)PHP請求至第二層的PHP處理節(jié)點(diǎn),至于靜態(tài)資源地址(http://misc.xxxx.com)可以單獨(dú)拿出來部署,或者直接使用商用的云存儲(chǔ)服務(wù)(國內(nèi)七牛不錯(cuò),國外有Amazon S3)

PHP處理節(jié)點(diǎn):一個(gè)節(jié)點(diǎn)其實(shí)就是一個(gè)監(jiān)聽特定端口的系統(tǒng)進(jìn)程,webserver的請求通過負(fù)載均衡器(我用的AWS的loadbalancer)進(jìn)行分發(fā),很好實(shí)現(xiàn)分布式和負(fù)載均衡。我現(xiàn)在用的還是php自帶的php-fpm,其實(shí)facebook出的hhvm性能非常強(qiáng)悍,但是還不能100%通過我項(xiàng)目的單元測試,等hhvm成熟過后可以平滑替換

高速緩存:用的memcached,這一層的作用主要是減輕數(shù)據(jù)庫IO和加快熱數(shù)據(jù)訪問,緩存策略與程序耦合度較高,不贅述,但簡單地說有兩種方式,一種是在程序的全局層面加一個(gè)緩存處理,這種方法代碼耦合度低,但是有效命中率不高,有些項(xiàng)目不一定適應(yīng),另一種是在具體的數(shù)據(jù)存取處加緩存處理,這種辦法程序耦合度較高,但是緩存命中率非常高,幾乎沒有無效緩存存在,我用的是這種。

數(shù)據(jù)庫 :我現(xiàn)在的項(xiàng)目數(shù)據(jù)規(guī)模不大,暫時(shí)只用了單臺(tái)數(shù)據(jù)庫,但是程序邏輯上已做好了數(shù)據(jù)庫線性擴(kuò)展的準(zhǔn)備。其實(shí)數(shù)據(jù)庫層的擴(kuò)展是老生常談了,常用手段是分庫分表,這一塊需要在前期的代碼就打下基礎(chǔ),另外更平滑地手段是使用中間件,比如360的Atlas,阿里巴巴的cobar,淘寶的TDDL,中間件可以在不大范圍變更代碼的情況下擴(kuò)展,但是具體的使用場景還是有限的,具體項(xiàng)目還需單獨(dú)考察。

其他:根據(jù)不同的項(xiàng)目,架構(gòu)還可以選擇性地使用隊(duì)列,我現(xiàn)在用的beantalkd,Redis也是一個(gè)很好的選擇。隊(duì)列常用的使用環(huán)境是郵件發(fā)送和站內(nèi)消息推送上面,但是在某些場景下也可以作為核心數(shù)據(jù)庫的緩沖,對應(yīng)對大并發(fā)或者突發(fā)性流量也是不錯(cuò)的選擇


發(fā)布手記

熱門詞條