大型網站架構技術

  1. 網站架構層次如圖:

 

1.前端架構css

前端指用戶請求到達網站應用服務器以前經歷的環節,一般不包含網站業務邏輯,不處理動態內容。前端

  1. 瀏覽器優化技術:並非優化瀏覽器(那個咱們作不到),而是 經過優化響應頁面,加快瀏覽器頁面的加載和顯示,經常使用的有頁面緩存、合併HTTP減小請求次數、使用頁面壓縮等。
  2. 動靜分離,靜態資源獨立部署:靜態資源,如css,js等文件部署在專門的CDN服務器集羣上,和web應用動態內容服務器分離(http://blog.brucefeng.info/post/static-backend-asolate)
  3. 圖片服務:這裏的圖片不是指網站Logo、按鈕圖標等,它們是靜態資源,應該和js、css部署一塊兒,這裏指用戶上傳的圖片,如產品圖片,用戶頭像等,圖片服務一樣使用獨立部署的圖片服務器集羣。
  4. 反向代理:部署在網站機房,在應用服務器、靜態資源服務器、圖片服務器以前,提供頁面緩存服務。

 

2.應用層架構web

應用層是處理網站主要業務邏輯的地方。數據庫

  1. 開發框架:網站業務是多變的,網站大部分都是工程師在加班加點完成的,一個好的開發框架相當重要。一個好的開發框架應該使角色分離,美工、開發可以各司其職。
  2. 負載均衡:將多臺應用服務器組成一個集羣,經過負載均衡分發到不一樣的服務器上,以應對大量用戶同時訪問產生的高併發負載壓力。
  3. session管理:一般應用服務器爲無狀態,不保存用戶請求上下文信息,可是網站須要用戶會話信息,須要專門的機制管理session,使集羣內甚至跨集羣的服務器均可以共享session
  4. 動態頁面靜態化:對於訪問量大但又不頻繁更新的動態頁面,能夠生成靜態頁面,利用靜態頁面的優化手段加速用戶訪問。
  5. 業務拆分:將複雜而又龐大的業務拆分開來,造成多個規模較小的產品。除了下降系統耦合度,也便於數據庫業務分庫。
  6. 虛擬化服務器:將一臺物理服務器虛擬化成多臺虛擬服務器,對於訪問較低的業務,更容易用較少的資源構建高可用的應用服務器集羣

 

3.服務層架構
瀏覽器

提供基礎服務,供業務層調用,完成網站業務。緩存

  1. 分佈式消息:利用消息隊列機制,實現業務和業務、業務和服務之間的異步消息發送及低耦合的業務關係。
  2. 分佈式服務:提供高性能、低耦合、高複用、易管理的分佈式服務,在網站實現面向服務架構(SOA)
  3. 分佈式緩存:經過可伸縮的服務器集羣提供大規模熱點數據的緩存服務,是網站性能優化的重要手段

 

4.存儲層架構性能優化

提供數據、文件的持久化存儲訪問和管理服務服務器

  1. 分佈式文件:網站在線業務須要存儲的文件大部分是圖片、網頁、視頻等文件,可是這些文件的數量特別龐大,並且一般都是在持續增長,須要伸縮性設計比較好的分佈式文件系統
  2. 關係數據庫:大部分網站的主要業務都是基於關係數據庫開發的。
  3. NoSQL數據庫:目前各類非關係型數據庫層出不窮,NoSQL也常被用做分佈式緩存,從社區活躍性來看,HBase目前是最好的。
  4. 數據同步、讀寫分離。

 

5.後臺架構session

網站應用中,除了要處理用戶的實時訪問請求外,還有一些後臺非實時數據分析要處理。架構

  1. 搜素引擎:即使是網站內部的搜索引擎,也須要進行數據更新、構建索引等。這些操做經過後臺系統定時執行。
  2. 數據倉庫:根據離線數據,提供數據分析和數據挖掘服務
  3. 推薦系統。

 

 

 

TO BE CONTINUED

相關文章
相關標籤/搜索