應對網站高併發訪問的四個建議

  將硬盤讀寫分離、功能和展示分開、基本功能封狀成類及在設計架構時保證其擴容性,對大型網站建設至關重要。

  互聯網不斷擴大的規模、日益增長的用戶羣以及Web2.0的興起,對網站建設提出了新的要求,它要具備高性能和高可擴展性,同時要支持高度併發的訪問。

  將硬盤讀寫分離

  如果網站硬盤的讀寫性能是整個網站性能提升的瓶頸,那麼可考慮將硬盤的讀、寫功能分開,分別進行優化。在用來寫的硬盤上,如果我們提升硬盤的I/O,那麼肯定會增加整個文件系統的故障率,因爲它是所有驅動器的故障率之和。硬盤的I/O和故障率不能兼得。而用來讀的硬盤,則可用普通的服務器硬盤來降低開銷。

  均衡CPU和I/O消耗,不僅可以獲得更充分的服務器資源利用,還能支持暫時的過載,遇到突發事件、訪問流量劇增時,出現的結果是系統的整體性能下降,而不是立即崩潰。

  功能和展示必須分開

  在網站的後期運營中,肯定會有很多需求變更。如果每次變更都需要修改源代碼,那麼,這個網站的開發可以說是失敗的。

  最重要的是功能和展示必須分開。核心功能使用腳本語言編寫,前臺展示使用帶特殊標籤的HTML,這樣不僅能加快開發速度,而且會爲以後的維護和升級提供方便。對於前臺模板,一般還需要將頁面的頭、尾單獨提取出來,頁面的主體部分也按模塊或功能拆分,這樣能切實減輕服務器的壓力。

  封裝使開發事半功倍

  在功能塊層次,如果使用JSP,應將數據庫連接、會話管理等基本功能經封裝成類。如果使用PHP,則要在腳本代碼中顯式封裝,將每個功能塊封裝成一個函數、文件或類。

  在更高的層次,可以將網站分爲表示層、邏輯層和持久層,分別進行封裝,做到當某一層架構發生變化時,不會影響到其他層。近來流行的MVC架構,將整個網站拆分成Model、View和Controller三個部分,而且有很多優秀的代碼框架可供選擇使用,像JSP的Structs、Spring,PHP的php.MVC及Studs等。使用現成的代碼框架,可以使網站開發事半功倍。

  擴容性應對突增流量

  一個大型網站,在設計架構的時候,必須考慮到以後可能的容量擴充。對於活動類網站來說,不定時的突增流量是巨大的。在網站主存儲服務器上,採用配置文件形式指定每一個存儲盤櫃上存儲的數據文件的ID範圍。當前臺服務器需要讀取一個數據的時候,首先通過詢問主存儲服務器上的接口獲得該數據所在的盤櫃及目錄地址,然後再去該盤櫃讀取實際的數據文件。如果需要增加盤櫃,只需要修改配置文件即可,前臺程序絲毫不受影響。

 

文章來源:http://www.enet.com.cn/article/2007/1127/A20071127924985.shtml

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章