《大型網站技術架構》讀書筆記一:大型網站架構演化

思惟導圖

1、大型網站系統特色

(1)高併發、大流量:PV流量巨大html

(2)高可用:7*24小時不間斷服務sql

(3)海量數據:文件數目分分鐘XXTB數據庫

(4)用戶分佈普遍:網絡狀況複雜後端

(5)安全環境惡劣:黑客的攻擊緩存

(6)需求快速變動,發佈頻繁:快速適應市場,知足用戶需求安全

(7)漸進式發展:慢慢的運營出大型網站服務器

2、大型網站架構演化過程

(1)初始階段網絡架構:一臺服務器網絡

  應用程序、文件、數據庫等全部資源都集中再一臺server上,典型案例:基於LAMP(Linux+Apache+Mysql/MariaDB+Perl/PHP/Python)架構的PHP網站架構

  

(2)應用和數據服務器分離:三臺服務器平天下併發

  業務發展,平臺再也不適應業務的發展,將應用和數據分離成三臺server(應用服務器,文件服務器,數據庫服務器),分離後三臺Server對硬件資源的需求各不相同:應用服務器須要更快更強大的cpu,而數據庫服務器須要更快的硬盤和更大的內存,文件服務器則須要更大的硬盤:

  

(3)使用緩存改善網站性能:3+x的server模式

  減小數據庫的訪問壓力,提升網站的數據訪問速度。緩存又能夠分爲:本地緩存和遠程緩存(能夠是分佈式的),本地緩存訪問速度快,但數據量有限,遠程分佈式緩存能夠集羣,所以容量不受限制

  

(4)使用應用服務器集羣改善網站的併發能力

  集羣解決高併發,海量數據問題的經常使用手段,實現系統的可伸縮性。經過負載均衡調度器,能夠將用戶訪問分佈到集羣中的某臺server上,應用服務器的負載壓力再也不成爲整個網絡的瓶頸。

  

(5)數據庫讀寫分離

  使用緩存後絕大部分均可以不經過DB就能完成,但仍有一部分(緩存訪問不命中、緩存過時)和所有的寫操做須要訪問DB,在網站的用戶達到必定規模後,DB由於負載壓力太高成爲網站的瓶頸。大部分主流DB都提供從熱備功能,利用這一功能能夠配置兩臺DB主從管理,一臺數據同步更新到另外一臺server上。網站利用DB的這一功能,實現DB讀寫分離,從而改善DB負載壓力。

  

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

  區別在於CDN部署在網絡提供商的機房,而反向代理則部署在網站的中心機房。使用CDN和反向代理的目的都是儘早返回數據給用戶,一方面加快用戶訪問速度,另外一方面也減輕後端服務器的負載壓力。

  

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

  隨着網站業務的發展,兩臺DB服務器依然不能知足需求,文件也同樣

  

(8)使用NoSQL和搜索引擎

  NoSQL和搜索引擎都是源自互聯網的技術手段,對可伸縮的分佈式特性具備更好的支持。應用服務器則經過一個統一數據訪問模塊訪問各類數據,減輕應用程序管理諸多數據源的麻煩。

  

(9) 業務拆分

  經過分而治之的手段將整個網站業務分紅不一樣的產品線,如淘寶將首頁、商鋪、訂單、賣家、買家等拆分紅不一樣的產品線,分歸不一樣的業務團隊負責。各個應用之間能夠經過創建一個超連接創建關係,也能夠經過消息隊列進行數據分發。

  

(10)分佈式服務

  既然每個應用系統都須要執行許多相通的業務操做,好比用戶管理、商品管理等,那麼能夠將這些共用的業務提取出來,獨立部署。

  

3、大型網站架構演化價值觀

  (1)核心價值:隨網站所需靈活應對

  大型網站不是從無到有一步就搭建好一個大型網站,而是可以伴隨小型網站業務的漸進發展,慢慢地演化成一個大型網站。

  (2)驅動力量:網站的業務發展—業務成就了技術,事業成就了人,而不是相反

4、大型網站架構設計的誤區

  (1)一味追隨大公司的解決方案

  (2)爲了技術而技術->常見問題

  (3)企圖用技術解決全部問題:技術是用來解決業務問題的,而業務的問題,也能夠經過業務的手段去解決

本博的內容摘自博客: http://www.cnblogs.com/edisonchou/p/3773891.html,做爲讀書筆記
相關文章
相關標籤/搜索