公司新聞
PHP語(yǔ)言開(kāi)發(fā)高并發(fā)的網(wǎng)站,需要加緩存,復(fù)雜邏輯走消息隊(duì)列異步處理,mysql查詢必須走索引,還搞不定就加機(jī)器分流,mysql配置升高并且一主多從,使用codis集群,增加消息隊(duì)列的消費(fèi)者,如果還搞不定就隨機(jī)拒絕請(qǐng)求,當(dāng)然這是最后的退路。
使用緩存處理類似搶購(gòu)、投票等高并發(fā)請(qǐng)求,如redis。
從A集群切換到B集群的過(guò)程中,必須保證B集群提前做好“預(yù)熱”(B集群的內(nèi)存中的熱點(diǎn)數(shù)據(jù),應(yīng)該盡量與A集群相同,否則,切換的一瞬間大量請(qǐng)求內(nèi)容,在B集群的內(nèi)存緩存中查找不到,流量直接沖擊后端的數(shù)據(jù)庫(kù)服務(wù),很可能導(dǎo)致數(shù)據(jù)庫(kù)宕機(jī))。
這個(gè)不光是PHP與MYSQL的事情了,還得有服務(wù)器、集群、網(wǎng)絡(luò)等等各個(gè)方面的架構(gòu)問(wèn)題。
memcache,頁(yè)面靜態(tài)化,對(duì)固定不變的頁(yè)面采用靜態(tài)處理,對(duì)數(shù)據(jù)庫(kù)高并非,高訪問(wèn),采取memcache技術(shù),減輕對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。
thinkphp 本身并沒(méi)有進(jìn)行高并發(fā)處理的功能 高并發(fā) 的先要知道你自己做的東西哪里并發(fā)高 thinkphp 內(nèi)置很多第三方的內(nèi)存緩存類,你只要把redis memcache memcached這些緩存安裝上,用內(nèi)存緩存可以緩解高并發(fā)。只是緩解并不能完全解決。
1、PHP語(yǔ)言開(kāi)發(fā)高并發(fā)的網(wǎng)站,需要加緩存,復(fù)雜邏輯走消息隊(duì)列異步處理,mysql查詢必須走索引,還搞不定就加機(jī)器分流,mysql配置升高并且一主多從,使用codis集群,增加消息隊(duì)列的消費(fèi)者,如果還搞不定就隨機(jī)拒絕請(qǐng)求,當(dāng)然這是最后的退路。
2、簡(jiǎn)單的做法,是給他增加一個(gè)slave作為備份機(jī)器。但是,如果請(qǐng)求量真的很多,我們發(fā)現(xiàn)cache命中率不高,需要更多的機(jī)器內(nèi)存呢?因此,我們更建議將它配置成一個(gè)集群。例如,類似redis cluster。 Redis cluster集群內(nèi)的Redis互為多組主從,同時(shí)每個(gè)節(jié)點(diǎn)都可以接受請(qǐng)求,在拓展集群的時(shí)候比較方便。
3、使用緩存處理類似搶購(gòu)、投票等高并發(fā)請(qǐng)求,如redis。
1、這個(gè)不光是PHP與MYSQL的事情了,還得有服務(wù)器、集群、網(wǎng)絡(luò)等等各個(gè)方面的架構(gòu)問(wèn)題。
2、PHP語(yǔ)言開(kāi)發(fā)高并發(fā)的網(wǎng)站,需要加緩存,復(fù)雜邏輯走消息隊(duì)列異步處理,mysql查詢必須走索引,還搞不定就加機(jī)器分流,mysql配置升高并且一主多從,使用codis集群,增加消息隊(duì)列的消費(fèi)者,如果還搞不定就隨機(jī)拒絕請(qǐng)求,當(dāng)然這是最后的退路。
3、因此,長(zhǎng)連接的用法通常需要在CGI和MySQL之間實(shí)現(xiàn)一個(gè)“連接池”服務(wù),控制CGI機(jī)器“盲目”創(chuàng)建連接數(shù)。 建立數(shù)據(jù)庫(kù)連接池服務(wù),有很多實(shí)現(xiàn)的方式,PHP的話,我推薦使用swoole(PHP的一個(gè)網(wǎng)絡(luò)通訊拓展)來(lái)實(shí)現(xiàn)。
4、需要注意的是: 禁用全部auto_increment的字段 id需要采用通用的算法集中分配 要具有比較好的方法來(lái)監(jiān)控mysql主機(jī)的負(fù)載和服務(wù)的運(yùn)行狀態(tài)。如果你有30臺(tái)以上的mysql數(shù)據(jù)庫(kù)在跑就明白我的意思了。
5、建站之前需要在你的電腦上配置php的開(kāi)發(fā)環(huán)境,可以用集成的,也可以自己配置。但是最基本的apache、php、mysql這三樣必須要有。集成的話這些都包括了,自己配需要每個(gè)都下載。建站就不用多說(shuō)了吧,可以自己從頭開(kāi)始開(kāi)發(fā),也可以使用cms。