1. 程式人生 > >大型網站架構演化之路

大型網站架構演化之路

一、服務進化之路

單伺服器階段

應用程式、資料庫、檔案都在一臺伺服器上。

這裡寫圖片描述

應用服務與資料服務分離

應用程式、資料庫、檔案分別部署在不同的伺服器上。

這裡寫圖片描述

引入快取緩解資料庫訪問壓力

這裡寫圖片描述

使用應用伺服器叢集提高併發處理能力

這裡寫圖片描述

資料庫讀寫分離

緩解資料庫訪問壓力

這裡寫圖片描述

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

這裡寫圖片描述

使用分散式檔案系統和分散式資料庫系統

這裡寫圖片描述

使用NoSQL和搜尋引擎

這裡寫圖片描述

業務拆分

這裡寫圖片描述

分散式服務

這裡寫圖片描述

二、名詞解釋

分層

將系統進行橫向分割,例如:分為資料層、服務層、應用層。

分割

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

分散式

分層於分割其目的之一就是便於分散式部署,將不同的模組部署到不同的機器上,通過遠端呼叫協同工作。

叢集

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

快取

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

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

–本地快取:應用伺服器本地快取著熱點資料,無需訪問資料庫。

–分散式快取:本地快取往往無法提供足夠空間,因此需要獨立的分散式模組。
(快取的條件:資料訪問熱點不均勻、資料有合適的有效期)

非同步

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

冗餘

實現服務高可用,防災。

自動化

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

安全

密碼、手機檢驗碼、驗證碼、過濾敏感資訊。