大型網站架構演化之路

一、服務進化之路

單服務器階段

應用程序、數據庫、文件都在一臺服務器上。

這裏寫圖片描述

應用服務與數據服務分離

應用程序、數據庫、文件分別部署在不同的服務器上。

這裏寫圖片描述

引入緩存緩解數據庫訪問壓力

這裏寫圖片描述

使用應用服務器集羣提高併發處理能力

這裏寫圖片描述

數據庫讀寫分離

緩解數據庫訪問壓力

這裏寫圖片描述

使用反向代理和CDN加速網站響應

這裏寫圖片描述

使用分佈式文件系統和分佈式數據庫系統

這裏寫圖片描述

使用NoSQL和搜索引擎

這裏寫圖片描述

業務拆分

這裏寫圖片描述

分佈式服務

這裏寫圖片描述

二、名詞解釋

分層

將系統進行橫向分割,例如:分爲數據層、服務層、應用層。

分割

對系統進行縱向分割,按照功能切分。

分佈式

分層於分割其目的之一就是便於分佈式部署,將不同的模塊部署到不同的機器上,通過遠程調用協同工作。

集羣

多臺機器部署相同的模塊,再利用負載均衡來對外提供服務。

緩存

概念:將數據放在距離計算最近的位置以加快處理速度。
– CDN:在距離用戶最近的網絡服務商處部署資源。因爲用戶的請求都>是首先到最近的網絡服務商處。

–反向代理:在網站的前端部署靜態資源,用戶請求過來直接在前端獲取靜態資源,不需要繼續轉發給應用服務器。

–本地緩存:應用服務器本地緩存着熱點數據,無需訪問數據庫。

–分佈式緩存:本地緩存往往無法提供足夠空間,因此需要獨立的分佈式模塊。
(緩存的條件:數據訪問熱點不均勻、數據有合適的有效期)

異步

生產者於消費者模式,各業務之間的調用不是同步的,而是將一個業務操作分爲多個階段,每個階段之間通過共享數據的方式異步執行進行協調。
優點:
– 提高系統可用性。消費者故障,生產者還是可以向消息隊列中生產數據。
– 大家加響應速度。生產者處理完,不需要等待消費者及時響應。
– 消除併發訪問高峯。可以將猛增的請求數據放入消息隊列中,等待消費者以此處理。

冗餘

實現服務高可用,防災。

自動化

自動化發佈:自動化代碼管理、自動化測試、自動化安全檢測、自動化部署。
運行中:自動化監控、自動化報警、自動化失效轉移、自動化失效恢復、自動化降級(拒絕部分請求將負載降低到一個安全水平)、自動化資源分配。

安全

密碼、手機檢驗碼、驗證碼、過濾敏感信息。

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