網站設計提綱
高性能(響應時間,併發數,TPS)css
- 瀏覽器靜態資源緩存
- CDN緩存
- 反向代理服務器緩存
- 應用服務器本地緩存
- 分佈式緩存服務器(Redis)
- 緩存數據預熱
- 減小http請求(合併js,css,圖片)
- http靜態資源gzip壓縮
- 資源複用(線程池,鏈接池)
- 異步處理 (消息隊列)
- 多線程(線程安全:無狀態對象,局部對象,加鎖)
- 分佈式(分層,分割)
- 集羣
- 單數據庫調優(索引,sql優化)
- 數據庫主從讀寫分離(複製延遲,寫壓力)
- 數據庫垂直分割(跨庫join查詢,跨庫 單表愈來愈大)
- 數據庫水平分割(跨庫join查詢, 添加移除節點,自增id,全部查詢須要sharding clue,備份麻煩)
- NoSQL數據庫
高可用web
- 任何功能都要部署至少2臺,防止單點(入口處的負載均衡服務器是單點,要用高端點的服務器)
- web應用服務器集羣(經過入口負載均衡服務器進行自動failover,web應用服務器無狀態話,sessoin由分佈式緩存管理)
- 分佈式服務集羣(服務調用的客戶端進行自動failover)
- 分佈式緩存Redis主備複製(RedisCluster,RedisSentinel,Codis進行自動failover)
- 數據庫主備複製(數據庫代理服務器進行自動failover)
- 數據庫數據冗餘備份(NoSQL自帶failover)
- 自動化發佈(減小發布致使的宕機時間)
- 服務器分批部署重啓(保證始終有一部分服務器在工做中)
可伸縮性算法
- web應用服務器集羣
- 分佈式服務集羣
- 經過請求分發服務器路由,客戶端從配置中心獲取路由
- 經常使用路由算法:輪詢,隨機,最少鏈接
- 分佈式緩存水平分割(一致性hash路由,presharding)
- 數據庫水平分割(一致性hash路由,presharding)
- NoSQL數據庫
歡迎關注本站公眾號,獲取更多信息