模式最重要的是能夠重用css
爲了解決高併發,海量數據,高可用提出了不少解決方案實現高可用,高性能,易擴展,可伸縮,安全的架構前端
分層:sql
程序上分層,並且也分層不是數據庫
分割:緩存
縱向節分,按功能和服務包裝秤高耦合低內聚的模塊單元,這樣一方面有利於開發維護,並且還有利於提供併發能力安全
好比網站能夠分爲購物,論壇,搜過,廣告,再細緻一點可能就是小家電,你們電,機票,酒店,日化等等服務器
分佈式:網絡
分層和分割一個重要做用就是分佈式,經過遠程調用,提升系統處理能力架構
可是隨之帶來了網絡耗損,系統一致性,更大的宕機風險。併發
常見的解決方案有:
分佈式應用服務:改善併發性,減小數據庫鏈接資源,還能夠更好的服用服務,有利於後續擴展
分佈式靜態資源:使用獨立域名,減小服務器壓力
分佈式數據存儲:如今數據量太大,主要是nosql
分佈式細算:如今有hadoop,通常作數據分析,還有基於流計算的storm,主要用於實時計算
分佈式鎖:主要用於分佈式環境下的協同操做,如今主要是zk提供的分佈式鎖功能比較好
分佈式文件系統:通常用做雲存儲
集羣:
對外提供一個接口,使用負載均衡,同時避免了單點故障
緩存:
將數據存放到離計算最近的位置加快速度
CDN:內容分發網絡,放在網絡運營商那裏,存放一些靜態資源,好比js,css
反向代理:網站前端,也能夠存放一些靜態資源
本地緩存:存儲熱點數據
分佈式緩存:熱點數據存儲在分佈式緩存中,減小應用和數據庫的壓力
異步:
下降了系統的耦合性,將業務拆分爲多個階段,單機狀況下可使用共享數據的方式,分佈式環境下可使用消費通訊,典型的消費者生產者模式
此外還有如下特徵:
提供系統可用性,消費者故障了,消息就會存儲起來,系統總體表現無恙,生產者恢復了從新消費
加快了相應速度
消除業務的高峯期,無論併發有多大,後臺消費者仍是有序的處理