- 網站架構層次如圖:

1.前端架構css
前端指用戶請求到達網站應用服務器以前經歷的環節,一般不包含網站業務邏輯,不處理動態內容。前端
- 瀏覽器優化技術:並非優化瀏覽器(那個咱們作不到),而是 經過優化響應頁面,加快瀏覽器頁面的加載和顯示,經常使用的有頁面緩存、合併HTTP減小請求次數、使用頁面壓縮等。
- 動靜分離,靜態資源獨立部署:靜態資源,如css,js等文件部署在專門的CDN服務器集羣上,和web應用動態內容服務器分離(http://blog.brucefeng.info/post/static-backend-asolate)
- 圖片服務:這裏的圖片不是指網站Logo、按鈕圖標等,它們是靜態資源,應該和js、css部署一塊兒,這裏指用戶上傳的圖片,如產品圖片,用戶頭像等,圖片服務一樣使用獨立部署的圖片服務器集羣。
- 反向代理:部署在網站機房,在應用服務器、靜態資源服務器、圖片服務器以前,提供頁面緩存服務。
2.應用層架構web
應用層是處理網站主要業務邏輯的地方。數據庫
- 開發框架:網站業務是多變的,網站大部分都是工程師在加班加點完成的,一個好的開發框架相當重要。一個好的開發框架應該使角色分離,美工、開發可以各司其職。
- 負載均衡:將多臺應用服務器組成一個集羣,經過負載均衡分發到不一樣的服務器上,以應對大量用戶同時訪問產生的高併發負載壓力。
- session管理:一般應用服務器爲無狀態,不保存用戶請求上下文信息,可是網站須要用戶會話信息,須要專門的機制管理session,使集羣內甚至跨集羣的服務器均可以共享session
- 動態頁面靜態化:對於訪問量大但又不頻繁更新的動態頁面,能夠生成靜態頁面,利用靜態頁面的優化手段加速用戶訪問。
- 業務拆分:將複雜而又龐大的業務拆分開來,造成多個規模較小的產品。除了下降系統耦合度,也便於數據庫業務分庫。
- 虛擬化服務器:將一臺物理服務器虛擬化成多臺虛擬服務器,對於訪問較低的業務,更容易用較少的資源構建高可用的應用服務器集羣
3.服務層架構
瀏覽器
提供基礎服務,供業務層調用,完成網站業務。緩存
- 分佈式消息:利用消息隊列機制,實現業務和業務、業務和服務之間的異步消息發送及低耦合的業務關係。
- 分佈式服務:提供高性能、低耦合、高複用、易管理的分佈式服務,在網站實現面向服務架構(SOA)
- 分佈式緩存:經過可伸縮的服務器集羣提供大規模熱點數據的緩存服務,是網站性能優化的重要手段
4.存儲層架構性能優化
提供數據、文件的持久化存儲訪問和管理服務服務器
- 分佈式文件:網站在線業務須要存儲的文件大部分是圖片、網頁、視頻等文件,可是這些文件的數量特別龐大,並且一般都是在持續增長,須要伸縮性設計比較好的分佈式文件系統
- 關係數據庫:大部分網站的主要業務都是基於關係數據庫開發的。
- NoSQL數據庫:目前各類非關係型數據庫層出不窮,NoSQL也常被用做分佈式緩存,從社區活躍性來看,HBase目前是最好的。
- 數據同步、讀寫分離。
5.後臺架構session
網站應用中,除了要處理用戶的實時訪問請求外,還有一些後臺非實時數據分析要處理。架構
- 搜素引擎:即使是網站內部的搜索引擎,也須要進行數據更新、構建索引等。這些操做經過後臺系統定時執行。
- 數據倉庫:根據離線數據,提供數據分析和數據挖掘服務
- 推薦系統。
TO BE CONTINUED