1. 程式人生 > >【大型網站架構】架構演化

【大型網站架構】架構演化

基本成型的大型網站架構:

使用分散式伺服器(多個應用伺服器,使用一個負載均衡排程伺服器進行排程),使用分散式快取伺服器,分散式檔案伺服器,資料庫使用讀寫分離,寫入主資料庫,讀取從資料庫,主從資料庫之間會進行資料複製:

 

(本文的圖片是從其他地方偷來的,不是很清晰,但基本能看。)

使用者量多了之後,不同地區使用者訪問網站時,速度差異較大。故使用反向代理和CDN加速網站響應(二者基本原理都是快取,區別在於CDN部署在提供商機房):

當用戶量更大,讀寫更多時,資料庫就會出現瓶頸,需要使用分散式資料庫伺服器(單表資料量異常龐大時使用,常見的資料庫拆分手段是業務分庫):

下一步,使用NoSQL和搜尋引擎:

下一步,業務拆分(如大型購物網站會將首頁、商鋪、訂單、賣家、買家等拆分到不同的產品線,分歸不同的業務團隊負責):

最後,把一些各個業務拆分模組中的公共部分(如使用者管理、商品管理)提取出來單獨部署:

網站技術是為了業務而存在的,不能一味追求時髦的技術,因為可能將網站技術發展引入崎嶇小道。

有時候,出問題的可能不一定是技術架構,有可能是業務架構,比如12306在 2012年年初的故障事件。

本文是李智慧的《大型網站技術架構》的筆記。