web動(dòng)靜資源分離
靜態(tài)請求:如html, js, css, img
動(dòng)態(tài)請求:如jsp, php
[Step2]緩存處理
客戶(hù)端(瀏覽器)緩存
前端頁(yè)面緩存(squid)
頁(yè)面片段緩存ESI(Edge Side Includes)
本地數據緩存
[Step3]web server集群+讀寫(xiě)分離
負載均衡:
前端負載均衡
DNS負載均衡
在DNS服務(wù)器中,可以為多個(gè)不同的地址配置同一個(gè)名字,對于不同的客戶(hù)機訪(fǎng)問(wèn)同一個(gè)名字,得到不同的地址。
反向代理
使用代理服務(wù)器將請求發(fā)給內部服務(wù)器,讓代理服務(wù)器將請求均勻轉發(fā)給多臺內部web服務(wù)器之一,從而達到負載均衡的目的。標準代理方式是客戶(hù)使用代理訪(fǎng)問(wèn)多個(gè)外部Web服務(wù)器,而這種代理方式是多個(gè)客戶(hù)使用它訪(fǎng)問(wèn)內部Web服務(wù)器,因此也被稱(chēng)為反向代理模式。
基于NAT的負載均衡技術(shù)
LVS
F5硬件負載均衡
應用服務(wù)器負載均衡
數據庫負載均衡
[Step4]CDN、分布式緩存、分庫分表
分布式緩存
目前流行分布式緩存方案:memcached、membase、redis等,基本上當前的NoSQL方案都可以用來(lái)做分布式緩存方案
分庫(垂直分區)
分表(水平分區shard)
[Step5]多數據中心+分布式存儲與計算
技術(shù)點(diǎn)[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)
大并發(fā)服務(wù)器架構:
垂直分區:比如用戶(hù)表、業(yè)務(wù)表、基礎表各有各自的讀寫(xiě)數據庫。
水平分區:比如用戶(hù)表、業(yè)務(wù)表、基礎表各有1000條記錄,則水平分割分布在10對讀寫(xiě)庫。
服務(wù)器性能殺手:
1、數據拷貝:(緩存,不是指分布式緩存,指的是服務(wù)器內部的,如從內核拷貝到應用層的緩存)
2、環(huán)境切換:(理性使用多線(xiàn)程)單核(使用狀態(tài)機編程效果最佳),多線(xiàn)程能夠發(fā)揮多核服務(wù)器最佳性能
3、內存分配:(內存池)減少向操作系統申請內存的次數
4、鎖競爭:(通過(guò)邏輯盡量減少鎖的使用,或者鎖的競爭)