大型網站后臺架構的演變

作者: longxibendi  發布時間: 2011-10-02 16:26  閱讀: 10817 次  推薦: 6   原文鏈接   [收藏]  

  隨著用戶訪問量的不斷增加,網站的后臺也會不斷變化以應對需求。本文主要從一個小型網站到大型網站的過度與變化來陳述。

  1.1 網站后臺架構

  主要指由web server 、應用服務器、數據庫、存儲、監控等組成的網站后臺系統。

  1.2 架構演變

  個人站點后臺架構。如圖2-1所示。

圖2-1 單臺一組

  如圖所示,如果是個人站點,訪問量不大,一般都是將web server、應用服務器、數據庫部署在一臺物理服務器上。從圖中也可以看到,一個網站最基本的后臺需要web server、應用服務器、數據庫三部分組成。

  1.2.1 網站架構的進一步演變

  考慮到網站訪問量的不斷增加,網站的后臺架構也必須不斷調整和優化,進一步實現功能分離。特別是隨著訪問量不斷增加以及考慮到數據庫的負載和數據的重要性,數據庫需要分離出來。從web server到數據庫實現各個層次的負載均衡。

  1.2.1.1 數據庫功能分離,數據庫單臺部署

  考慮到數據庫的安全性和處理性能,數據庫單臺部署。如圖2-2-1-1所示。

圖2-2-1-1 數據庫分離

  如圖所示,數據庫與web server 、應用服務器分離出來,單臺部署。這樣做有兩個好處:

  (1)數據庫服務器性能提高,不再和webserver 、應用服務器搶占資源。

  (2)數據庫服務器安全性能提高,不會因為一臺服務器宕機而影響所有服務,特別是數據庫服務。

  1.2.1.2 前端負載均衡部署,用于緩解單臺web server壓力

  隨著訪問量的不斷增加,單臺web server 負載會加大,甚至有宕機的危險,所以需要在前端增加負載均衡器,實現web server層的負載均衡。緩解壓力。如圖2-2-1-2所示。

2-2-1-2 前端負載均衡

  如圖所示,通過增加web server并用負載均衡器(load balance)來緩解前端的web server和應用服務器壓力。并且,為了保證數據庫的絕對安全,做了Master-Slave主從備份。這樣當master db宕機之后,slave db可以立即啟用。所以這樣做有以下好處:

  (1) 前臺web server 和 應用服務器壓力減少,負載均衡器分流負載。

  (2) 后端數據庫安全性加強,出現故障后,業務可以很快切換到slave db 上。

  1.2.1.3 增加緩存及數據庫讀寫分離

  隨著訪問量的不斷增加,發現整個系統的讀寫比例很大,對用戶而言,讀操作多于寫操作,而且比例很大,這就需要進一步改善架構,實現讀寫分離。

  通過增加db proxy,實現讀寫分離。如圖所示,2-2-1-3。

圖2-2-1-3

  考慮到讀寫比例大的特點,如圖2-2-1-3所示,通過增加db proxy,以及master-slaves ,實現讀寫分離,所有寫操作在master db上進行,所有讀操作在其他slave dbs 上進行,這樣做有以下好處:

  (1) 緩解單臺db的壓力,減少單臺db的負載

  (2) 增加多個slave,當master db宕機之后,可以很快切換到slave 上,減少所有db同時宕機的風險。

  很多用戶訪問,讀與寫操作比例很大,如圖2-2-1-3所示,通過在web server層上增加緩存,可以提高訪問速度。比如可以緩存css、jpg等靜態文件。

  增加緩存有兩個好處:

  (1) 加快用戶的讀請求訪問速度。

  (2) 緩解web server的壓力。

  1.2.1.4 解決單點故障問題,增加在線備份設備(交換設備和服務器)

  雖然上述幾個架構圖,從各個層面緩解了服務器壓力,但是,還是存在當點故障的可能性。如果出現單點故障,沒有在線物理設備提供使用,那該系統也不是一個高可用的系統。針對上述問題,增加在線物理備份設備,解決單點故障問題,如圖2-2-1-4所示。

圖 2-2-1-4

  如圖2-2-1-4所示,增加了負載均衡器的在線備用設備和db proxy在線備用服務器,這樣做可以在負載均衡器出現故障的時候,啟用在線備用設備;如果db proxy出現故障,也可以啟用在線備用db proxy,實現故障轉移。保證系統的高可用性。

6
1
 
標簽:網站架構
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()