資源描述:
《最流行的phpmvc框架》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、最流行的PHPMVC框架http://yp.oss.org.cn/software/show_resource.php?resource_id=742Yii(音易框架,我一般直接讀YII)CodeIgniter(簡讀CI)SymfonyCakePHPMVC,這個看百度就行,MVC在計算機界通用http://baike.baidu.com/view/31.htm如何提高PHP運行速度http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2012/010
2、5/9616.html這里提到了ZendOptimizer,一般這個都不太用,ZendCache、APC和AfterburnerCache,這幾種模塊緩存,APC是常用的,一般用它緩存includerequire的東西(開啟apc功能后,這些自動的,即之后php運行到require的東西不會去讀硬盤,而是讀cache)。壓縮網(wǎng)頁內(nèi)容,是指內(nèi)容類的網(wǎng)站,輸出的html代碼很多,開啟gzip減少網(wǎng)絡(luò)傳輸量,代碼層面的,代碼復(fù)用,使用內(nèi)部函數(shù),算法好一些,邏輯簡化,都能一定程度加速,我補充一些:提高速度,
3、本質(zhì)的找到一個功能塊的性能瓶頸,針對問題做特別的優(yōu)化。比如如果mysql讀取量較大,根據(jù)使用頻繁程度做cache,避免多次請求mysql,分擔壓力。cache可以使用本地文件cache,可以使用memcacheredis以及一些nosql數(shù)據(jù)庫(nosql的數(shù)據(jù)庫一般都是key-value數(shù)據(jù)庫)。有一些很耗時的處理,可以考慮是否可以預(yù)處理,通過計劃任務(wù)定時處理好存起來,使用時直接調(diào)用,而不用現(xiàn)計算。還有一些耗時,但是此次請求并不直接關(guān)心結(jié)果的,可以考慮異步處理,比如把它丟給[消息隊列],由另一個程
4、序去執(zhí)行相關(guān)操作,這樣當前程序可以很快返回結(jié)果。所有高并發(fā)的網(wǎng)站架構(gòu),都是要分布式的,即一個請求可能會由好多個機器共同分擔完成,網(wǎng)站服務(wù)器分布,數(shù)據(jù)庫分布,存儲分布。網(wǎng)站分布,為了增加不同地區(qū)用戶訪問速度,會將網(wǎng)站主機布到多種機房內(nèi),電信,聯(lián)通,鐵通,移動,海外等機房。訪問的時候根據(jù)來源分配到相應(yīng)的服務(wù)器上,一般同一種網(wǎng)絡(luò)內(nèi)的服務(wù)器是隨機分配的,使用負載均衡器,來做調(diào)度,也可以使用DNS輪循的方式隨機分配。問你負載均衡等實現(xiàn)細節(jié)可以不知道,提到這些詞就可以了,有硬件專門做,也可以用程序來模擬實現(xiàn)。程
5、序?qū)崿F(xiàn)無非是寫一個算法來隨機分配。DNS輪循的要在DNS解析層做,這些是運維的事情。網(wǎng)站分布了,資源請求是內(nèi)部的,各機房之內(nèi)通過服務(wù)器之間打通來實現(xiàn)高速訪問,這是網(wǎng)絡(luò)運維的事情。簡單的做法是在服務(wù)器上采用雙線或多線,即一臺服務(wù)器有電信的IP也有網(wǎng)通的IP,這樣不同的網(wǎng)絡(luò)過來,請求不同的IP地址,達到更高速訪問的目的。數(shù)據(jù)庫分布,mysql提供主從(master-slave)的方式,即數(shù)據(jù)庫有一個主服務(wù)器,可以有許多從服務(wù)器,slave從master同步數(shù)據(jù),網(wǎng)站服務(wù)器請求時從slave來查詢,減輕m
6、aster壓力。也可以按數(shù)據(jù)業(yè)務(wù)切分,將不同的數(shù)據(jù)放在不同的服務(wù)器上,這樣也會減輕數(shù)據(jù)請求的壓力(但同時要訪問多臺數(shù)據(jù)庫服務(wù)器,又增加了一些開銷)。mysql的主從同步原理是binlog,通過同步主服務(wù)器的操作命令過程,來實現(xiàn)在從服務(wù)器上重建數(shù)據(jù)。同時這種模式也實現(xiàn)了讀寫分離,寫的時候在master上寫,讀的時候在slave上讀。防止大并發(fā)時受寫入速度影響讀取速度。存儲分布,一些資源可以不必放在主網(wǎng)站上,比如js、css、圖片,可以放到其它機器上,我們經(jīng)常會發(fā)現(xiàn)一些大網(wǎng)站的圖片,可能是img1、im
7、g2img3、static、pic等域名開頭的這些都是將這種資源分開的做法。同時這些靜態(tài)資源,可以使用CDN來加速(CDN的全稱是ContentDeliveryNetwork,即內(nèi)容分發(fā)網(wǎng)絡(luò)),CDN服務(wù)器可以自己建,也可以購買第三方服務(wù)。版本管理,從CVS到SVN以及GIT,一般要會SVN,CVS是早期使用的,現(xiàn)在被SVN取代,新一代的GIT現(xiàn)在正在崛起。代碼版本管理軟件的作用是,將代碼保存在服務(wù)器上,通過更新,提交兩種操作,來實現(xiàn)代碼的最終修改,這樣多人合作時方便。在版本發(fā)布時,打一個tag,就
8、將代碼定格在那一時刻。你可以繼續(xù)開發(fā)你的,不會干擾那個tag。也可以開多個分支,這樣可以由不同的人開發(fā)多種版本,可以1.02.0等版本同時開發(fā),互不影響。開發(fā)完了,也可以版本合并。使用版本管理還有一個好處是,代碼在服務(wù)器上,即使本機壞了,也不會影響大家工作成果。如果有人誤操作,將代碼毀了,也可以回滾。關(guān)于這三種版本管理軟件使用方法,自己百度。HTTP協(xié)議http://www.blogjava.net/zjusuyong/articles/304788.html重點看一