第一章 大型網站架構演化
一、大型網站軟件系統的特點:-
高并發、大流量
-
高可用
-
海量數據
-
用戶分布廣泛、網絡情況復雜
-
安全環境惡劣
-
需求快速變更,發布頻繁
-
漸進式發展
-
初始階段的網站架構
-
應用服務和數據服務分離
-
使用緩存改善網站性能
-
使用應用服務器集群改善網站的并發處理能力
-
數據庫讀寫分離
-
使用反向代理和CDN加速網站響應
-
使用分布式文件系統和分布式數據庫系統
-
使用NoSQL和搜索引擎
-
業務拆分
-
分布式服務
緩存分為兩種,緩存在應用服務器的本地緩存和緩存在專門的分布式緩存服務器的遠程緩存。
CDN和反向代理和基本原理都是使用緩存,區別在于CDN部署在網絡提供商的機房,使用戶在請求網站服務時,可以從距離自己最近的網絡提供商機房獲取數據;反向代理服務器則部署在網站的中心機房,用戶請求到達機房后,首先訪問反向代理服務器,若有緩存,直接返回給用戶。
三、大型網站架構演化的價值觀
-
大型網站架構技術的核心價值是隨網站所需靈活應對
-
驅動大型網站技術發展的主要力量是網站的業務發展
-
一味追隨大公司的解決方案
-
為了技術而技術
-
企圖用技術解決所有問題
第二章 大型網站架構模式
網站架構模式-
分層,應用層、服務層、數據層;注意要合理規劃層次邊界和接口,禁止跨層次的調用或者逆向調用;橫向切分;
-
分割,縱向切分,按照模塊/功能/服務來分割
-
分布式,分布式應用和服務、靜態資源、數據和存儲、計算、配置、鎖、文件系統
-
集群。即使是訪問量很小的分布式應用和服務,也至少要部署兩臺服務器構成一個小的集群,目的就是提高系統的可用性。
-
緩存,包括CDN和反向代理;本地緩存和分布式緩存;使用緩存的兩個前提條件:1. 數據訪問熱點不均衡,2. 數據在某個時間段內有效,不會很快過期;
-
異步,系統解耦的手段之一:分層、分割、分布、異步;單一服務器內,通過多線程共享內存隊列的方式實現異步,分布式系統通過分布式消息隊列實現異步;
-
冗余:數據定期備份、存檔保存、冷備份、主從分離、實時同步熱備份、災備數據中心等;
-
自動化。自動代碼管理,測試,安全檢測,部署,監控,報警,失效轉移關閉,自動恢復重啟,自動化降級(就是對不合理的訪問不重要的服務進行關閉,阻止訪問等。將負載維持在正常的水平)
-
安全。加密,檢驗,阻止攻擊,風險控制。
第三章 大型網站核心架構要素
架構要素-
性能,衡量指標:響應時間、TPS、系統性能計數器
-
可用性,手段:冗余、負載均衡
-
伸縮性,集群增加節點,一致性哈希算法
-
擴展性:衡量的主要標準就是:網站在添加新的業務產品時,是否可以實現對現有產品透明無影響;主要手段就是:事件驅動架構和分布式服務。
-
安全性
浙公網安備 33010602011771號