大型網站架構演變過程、大併發服務器架構

大型網站架構演變過程、大併發服務器架構

分類: muduo網絡庫 2231人閱讀 評論(7) 收藏 舉報

大型網站架構演變過程:

[Step1]web server與數據庫分離



web動靜資源分離

靜態請求:如html, js, css, img
動態請求:如jsp, php


[Step2]緩存處理

客戶端(瀏覽器)緩存
前端頁面緩存(squid)
頁面片段緩存ESI(Edge Side Includes)
本地數據緩存


[Step3]web server集羣+讀寫分離

負載均衡:
前端負載均衡
DNS負載均衡
在DNS服務器中,可以爲多個不同的地址配置同一個名字,對於不同的客戶機訪問同一個名字,得到不同的地址。
反向代理
使用代理服務器將請求發給內部服務器,讓代理服務器將請求均勻轉發給多臺內部web服務器之一,從而達到負載均衡的目的。標準代理方式是客戶使用代理訪問多個外部Web服務器,而這種代理方式是多個客戶使用它訪問內部Web服務器,因此也被稱爲反向代理模式。
基於NAT的負載均衡技術
LVS
F5硬件負載均衡
應用服務器負載均衡
數據庫負載均衡

[Step4]CDN、分佈式緩存、分庫分表




分佈式緩存



目前流行分佈式緩存方案:memcached、membase、redis等,基本上當前的NoSQL方案都可以用來做分佈式緩存方案

庫(垂直分區)





分表(水平分區shared)


[Step5]多數據中心+分佈式存儲與計算


技術點[DFS、Key-Value DB 、 Map/Reduce ]


DFS分佈式文件系統,如:Lustre\HDFS\GFS\TFS\FreeNas等
Key-Value DB,也作爲NoSQL解決方案,如:BigTable\Tair\Hbase\HyperTable等
Map/Reduce算法(計算框架),基本上現有NoSQL數據庫中都支持此算法。
提供完整解決方案:
   Google(GFS|BigTable|Map/Reduce)
   Apache Hadoop(HDFS|HBase|Map/Reduce) 


大併發服務器架構:





垂直分區:比如用戶表、業務表、基礎表各有各自的讀寫數據庫。
水平分區:比如用戶表、業務表、基礎表各有1000條記錄,則水平分割分佈在10對讀寫庫。

服務器性能殺手:
1、數據拷貝:(緩存,不是指分佈式緩存,指的是服務器內部的,如從內核拷貝到應用層的緩存)
2、環境切換:(理性使用多線程)單核(使用狀態機編程效果最佳),多線程能夠發揮多核服務器最佳性能
3、內存分配:(內存池)減少向操作系統申請內存的次數
4、鎖競爭:(通過邏輯儘量減少鎖的使用,或者鎖的競爭)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章