一、架構演變
不斷迭代的架構圖:
切記: 不要爲了追求技術而設計架構, 而是爲了業務來使用技術.
二、網站架構模式
- 分層: 應用層,服務層,數據層
- 分割:業務拆分
- 分佈式:分佈式應用和服務、分佈式靜態資源、分佈式數據和存儲、分佈式計算、分佈式配置、分佈式鎖、分佈式文件
- 集羣: 同一個集羣配置相同項目,一個出錯訪問另外的
- 緩存:CDN、反向代理、本地緩存、分佈式緩存
- 異步:提高系統可用性、加快網站響應速度、消除併發高峯(rabbitMQ)
- 冗餘:冷備份,熱備份,災備中心
- 自動化:自動化發佈、自動化代碼管理、自動化測試、自動化安全測試、自動化部署、自動化監控 、自動化報警、自動化失效轉移、自動化失效恢復、自動化降級、自動化分配資源
- 安全:加密、驗證碼、XSS、SQL注入、風險控制
三、大型網站架構核心要素
1、性能
2、可用性:一臺宕機,其他的頂上
3、伸縮性:容易向集羣中加入新的服務器
4、擴展性:方便業務進行擴展
5、安全性
四、瞬時響應:網站的高性能架構
- 網站性能測試
- web前端性能優化:減少HTTP請求,瀏覽器緩存、數據壓縮、css放上面,js放下面,較少cookie傳輸、 cdn加速、 反向代理
- 應用服務器性能優化:分佈式緩存、異步、集羣、代碼優化
- 存儲性能優化:機械硬盤和固態、B+樹和LSM樹文件數據索引排序(排序後方便讀取)、RAID和HDFS