網站設計提綱

高性能(響應時間,併發數,TPS)css

  1. 瀏覽器靜態資源緩存
  2. CDN緩存
  3. 反向代理服務器緩存
  4. 應用服務器本地緩存
  5. 分佈式緩存服務器(Redis)
  6. 緩存數據預熱
  7. 減小http請求(合併js,css,圖片)
  8. http靜態資源gzip壓縮
  9. 資源複用(線程池,鏈接池)
  10. 異步處理 (消息隊列)
  11. 多線程(線程安全:無狀態對象,局部對象,加鎖)
  12. 分佈式(分層,分割)
  13. 集羣
  14. 單數據庫調優(索引,sql優化)
  15. 數據庫主從讀寫分離(複製延遲,寫壓力)
  16. 數據庫垂直分割(跨庫join查詢,跨庫 單表愈來愈大)
  17. 數據庫水平分割(跨庫join查詢, 添加移除節點,自增id,全部查詢須要sharding clue,備份麻煩)
  18. NoSQL數據庫

高可用web

  1. 任何功能都要部署至少2臺,防止單點(入口處的負載均衡服務器是單點,要用高端點的服務器)
  2. web應用服務器集羣(經過入口負載均衡服務器進行自動failover,web應用服務器無狀態話,sessoin由分佈式緩存管理)
  3. 分佈式服務集羣(服務調用的客戶端進行自動failover)
  4. 分佈式緩存Redis主備複製(RedisCluster,RedisSentinel,Codis進行自動failover)
  5. 數據庫主備複製(數據庫代理服務器進行自動failover)
  6. 數據庫數據冗餘備份(NoSQL自帶failover)
  7. 自動化發佈(減小發布致使的宕機時間)
  8. 服務器分批部署重啓(保證始終有一部分服務器在工做中)

可伸縮性算法

  1. web應用服務器集羣
  2. 分佈式服務集羣
  3. 經過請求分發服務器路由,客戶端從配置中心獲取路由
  4. 經常使用路由算法:輪詢,隨機,最少鏈接
  5. 分佈式緩存水平分割(一致性hash路由,presharding)
  6. 數據庫水平分割(一致性hash路由,presharding)
  7. NoSQL數據庫
相關文章
相關標籤/搜索