應(yīng)對網(wǎng)站高并發(fā)訪問的四個建議_建站經(jīng)驗教程
推薦:播客生活:點擊高不高 標(biāo)題很重要播客生存狀態(tài) 夜里11時,北京西城區(qū)。Kiwi回家扔下背包,全副武裝地出門了。在樓下一片混亂中,她調(diào)好相機,對準(zhǔn)街區(qū)一通推拉搖移。 回來時在公車上看見路上塞得水泄不通,清障車停了滿大街。kiwi一下激動起來,難道四周道路塌方了?她趕緊用手機拍了一段,不過癮,回
將硬盤讀寫分離、功能和展示分開、基本功能封狀成類及在設(shè)計架構(gòu)時保證其擴容性,對大型網(wǎng)站建設(shè)至關(guān)重要。
互聯(lián)網(wǎng)不斷擴大的規(guī)模、日益增長的用戶群以及Web2.0的興起,對網(wǎng)站建設(shè)提出了新的要求,它要具備高性能和高可擴展性,同時要支持高度并發(fā)的訪問。
將硬盤讀寫分離
假如網(wǎng)站硬盤的讀寫性能是整個網(wǎng)站性能提升的瓶頸,那么可考慮將硬盤的讀、寫功能分開,分別進行優(yōu)化。在用來寫的硬盤上,假如我們提升硬盤的I/O,那么肯定會增加整個文件系統(tǒng)的故障率,因為它是所有驅(qū)動器的故障率之和。硬盤的I/O和故障率不能兼得。而用來讀的硬盤,則可用普通的服務(wù)器硬盤來降低開銷。
均衡CPU和I/O消耗,不僅可以獲得更充分的服務(wù)器資源利用,還能支持暫時的過載,碰到突發(fā)事件、訪問流量劇增時,出現(xiàn)的結(jié)果是系統(tǒng)的整體性能下降,而不是立即崩潰。
功能和展示必須分開
在網(wǎng)站的后期運營中,肯定會有很多需求變更。假如每次變更都需要修改源代碼,那么,這個網(wǎng)站的開發(fā)可以說是失敗的。
最重要的是功能和展示必須分開。核心功能使用腳本語言編寫,前臺展示使用帶非凡標(biāo)簽的HTML,這樣不僅能加快開發(fā)速度,而且會為以后的維護和升級提供方便。對于前臺模板,一般還需要將頁面的頭、尾單獨提取出來,頁面的主體部分也按模塊或功能拆分,這樣能切實減輕服務(wù)器的壓力。
封裝使開發(fā)事半功倍
在功能塊層次,假如使用JSP,應(yīng)將數(shù)據(jù)庫連接、會話治理等基本功能經(jīng)封裝成類。假如使用PHP,則要在腳本代碼中顯式封裝,將每個功能塊封裝成一個函數(shù)、文件或類。
在更高的層次,可以將網(wǎng)站分為表示層、邏輯層和持久層,分別進行封裝,做到當(dāng)某一層架構(gòu)發(fā)生變化時,不會影響到其他層。近來流行的MVC架構(gòu),將整個網(wǎng)站拆分成Model、View和Controller三個部分,而且有很多優(yōu)秀的代碼框架可供選擇使用,像JSP的Structs、Spring,PHP的php.MVC及Studs等。使用現(xiàn)成的代碼框架,可以使網(wǎng)站開發(fā)事半功倍。
擴容性應(yīng)對突增流量
一個大型網(wǎng)站,在設(shè)計架構(gòu)的時候,必須考慮到以后可能的容量擴充。對于活動類網(wǎng)站來說,不定時的突增流量是巨大的。在網(wǎng)站主存儲服務(wù)器上,采用配置文件形式指定每一個存儲盤柜上存儲的數(shù)據(jù)文件的ID范圍。當(dāng)前臺服務(wù)器需要讀取一個數(shù)據(jù)的時候,首先通過詢問主存儲服務(wù)器上的接口獲得該數(shù)據(jù)所在的盤柜及目錄地址,然后再去該盤柜讀取實際的數(shù)據(jù)文件。假如需要增加盤柜,只需要修改配置文件即可,前臺程序絲毫不受影響。
分享:站點運營中的三六九法則從上一個命題《站點推廣到底是個什么東西》到現(xiàn)在已經(jīng)半個多月過去了。最近幾天依然有不少朋友加我QQ來討論站點的運營推廣,于是我萌發(fā)了個念頭,寫篇系統(tǒng)的關(guān)于站點運營的文章。本來,題目依然想用站點運營到底是個什么東西,后來想想,算了。什么東西這個詞不太好。
- 相關(guān)鏈接:
- 教程說明:
建站經(jīng)驗教程-應(yīng)對網(wǎng)站高并發(fā)訪問的四個建議
。