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