天天看點

大型網站技術架構核心原理與案例分析(李智慧)學習筆記1--大型網站架構模式

一、網站架構模式

  在工作中,經常會遇到類似場景下不斷重複發生的問題,對于此類問題解決方案,我們經過抽象提取出來解決該類核心方案,即架構模式;

1.分層

   面臨問題:系統耦合、不能更細粒度獨立部署擴充為分布式叢集提高并發和功能擴充、不能更有效的拆分工作開發維護、不利于公共服務及資源複用

   優點:系統切分之後便于分工開發維護、友善獨立部署後期可以擴充分布式、軟體邏輯結構清晰

實踐方式:類似于MVC模式,将整體應用分為三層應用層 、服務層、資料層,也根據實際情況再可以針對分層進行更細粒度拆分;

2.分割

   面臨問題:系統耦合整體龐大、不利于開發維護、不利于分布式擴充并發和功能擴充

   優點:系統分割之後便于分工開發維護、友善獨立部署後期可以擴充分布式、軟體邏輯結構清晰

實踐方式:可以根據需要,選擇分割粒度,分割方式主要為按照業務線或者功能子產品;

3.分布式

面臨問題:高并發通路、單節點故障、單節點性能提升成本效益不高且有性能上線

缺點:分布式網絡調用會有性能損耗、伺服器多開發維護成本高、當機機率高、分布式資料一緻性問題

實踐方式:分布式應用和服務(核心服務抽離複用)、分布式靜态資源(獨立域名通路靜态資源)、分布式資料和存儲(nosql資料庫産品)、分布式計算、分布式配置、分布式鎖、分布式檔案

4.叢集

面臨問題:單機性能有上限、單機性能可用性比較低、并發量低、處理能力有限

實踐方式:伺服器叢集化對外提供通路時候,通過負載均衡裝置提供服務

5.緩存

面臨問題:性能得不到滿足(緩存是提高系統性能第一手段)

實踐方式:CDN緩存靜态資源、反向代理緩存、本地緩存、分布式緩存

6.異步

面臨問題:系統高度耦合、不利于後續功能擴充、實時系統高并發情況可用性不足、網站響應慢、有并發通路高峰

實踐方式:異步消息通知解耦系統RocketMq、RabbitMq等

7.備援

面臨問題:伺服器總是可能會不可使用、資料總是可能會存在安全問題

實踐方式:服務要叢集提供服務、資料要做備援備份

8.自動化

面臨問題:部署釋出減少人工介入造成錯誤、需要自動監控系統、系統自動容錯失效轉移等

實踐方式:釋出過程自動化、自動化代碼管理、自動化測試、自動化安全檢測、自動化部署、自動化監控、自動化報警、自動化失效轉移、自動化失效恢複、自動化降級、自動化配置設定資源

9.安全

面臨問題:安全問題一直存在,xss、csrf、sql注入

實踐方式:密碼、驗證碼、防火牆、加密、過濾、特殊字元編碼轉碼、sql綁定參數(

#

方式能夠很大程度防止sql注入)、交易業務風險控制(規則引擎或統計模型控制)

繼續閱讀