大型網站架構技術一覽前端
網站系統架構層次以下圖所示:數據庫
一、 前端架構瀏覽器
前端指用戶請求到達網站應用服務器以前經歷的環節,一般不包含網站業務邏輯,不處理動態內容。緩存
(1) 瀏覽器優化技術;安全
(2) CDN;性能優化
(3) 動靜分離,靜態資源獨立部署;服務器
(4) 圖片服務;架構
(5) 反向代理;負載均衡
(6) DNS:域名服務,將域名解析成IP地址,利用DNS能夠實現DNS負載均衡,配置CDN也須要修改DNS,使域名解析後指向CDN服務器。框架
二、 應用層架構
應用層是處理網站主要業務邏輯的地方
(1) 開發框架;
(2) 頁面渲染;
(3) 負載均衡;
(4) Session管理;
(5) 動態頁面靜態化;
(6) 業務拆分;
(7) 虛擬化服務器;
三、 服務層架構
提供基礎服務,供應用層調用,完成網站業務。
(1) 分佈式消息:利用消息隊列機制,實現業務與業務、業務和服務之間的異步消息發送及低耦合的業務關係;
(2) 分佈式服務;提供高性能、低耦合、易複用、易管理的分佈式服務,在網站實現面向服務架構(SOA);
(3) 分佈式緩存:經過可伸縮的服務器集羣提供大規模熱點數據的緩存服務,是網站性能優化的重要手段;
(4) 分佈式配置;
四、 存儲層架構
提供數據、文件的持久化存儲訪問與管理服務。
(1) 分佈式文件;
(2) 關係數據庫;
(3) NoSQL數據庫;
(4) 數據同步;
五、 後臺架構
網站應用中,除了要處理用戶的實時訪問請求外,還有一些後臺非實時數據分析要處理。
(1) 搜索引擎:即便是網站內部的搜索引擎,也須要進行數據增量更新及全量更新、構建索引等。這些操做經過後臺系統定時執行;
(2) 數據倉庫:根據離線數據,提供數據分析與數據挖掘服務;
(3) 推薦系統:社交網站及購物網站經過挖掘任何人之間的關係,任何商品之間的關係,發覺潛在的人際關係和購物興趣,爲用戶提供個性化推薦服務;
六、 數據採集與監控
監控網站訪問狀況與系統運行狀況,爲網站運營決策和運維管理提供支持保障。
(1) 瀏覽器數據採集:經過在網站頁面中嵌入JS腳本採集用戶瀏覽器環境與操做記錄,分析用戶行爲;
(2) 服務器業務數據採集:服務器業務數據包括兩種,一種是採集在服務端記錄的用戶請求操做日誌;一種是採集應用程序運行期業務數據,好比待處理消息數目等;
(3) 服務器性能數據採集;
(4) 系統監控;
(5) 系統報警;
七、 安全架構
保護網站免遭攻擊及敏感信息泄露。
(1) Web攻擊;
(2) 數據保護;
八、 數據中心機房架構
大型網站須要的服務器規模數以萬計,機房物理架構也須要關注。
(1) 機房架構
(2) 機櫃架構
(3) 服務器架構