設計高可用和高併發

《億級流量網站架構核心技術》讀書筆記前端

主要講解高可用,高併發java

高可用web

  • 負載均衡
       負載均衡算法
       失敗重試機制
       健康檢查機制
       動態負載均衡
  • 限流
       限流算法
       應用級限流
       分佈式限流
       接入層限流 
  • 降級
       降級預案
       自動降級/開關降級
       讀服務/寫服務降級
       多級降級
       配置中心
       使用Hystrix降級
       使用Hystrix熔斷
  • 隔離
    進程線程隔離
    集羣/機房隔離
    讀寫隔離
    動靜隔離
    爬蟲/熱點隔離
    使用Hystrix隔離
    基於Servlet3的請求隔離
  • 超時與重試
    代理層超時和重試
    web容器超時
    中間件客戶端超時與重試
    數據庫客戶端超時
    NoSQL客戶端超時
    業務超時
    前端ajax超時
  • 回滾
    事物回滾
    代碼庫回滾
    部署版本回滾
    數據版本回滾
    靜態資源回滾
  • 壓測與預案
      系統壓測
              壓測方案:壓測接口/併發量/壓測策略/壓測指標
              壓測報告:機器負載/QPS/響應時間/成功率
              壓測方式:線下/線上壓測
              讀寫/仿真/引流/隔離集羣/縮容壓測
              單機/集羣/離散/全鏈路壓測
      系統優化與容災
             單機調優
             架構優化/系統擴容
             跨機房容災
     應急預案
             網絡接入層(DNS/LVS/HaProxy)
             應用接入層(Nginx/OpenResty)
             web應用層(Tomcat)
             服務層(Dubbo)
             數據層(Redis/DB)   
     監控報警
             服務器監控/系統監控/JVM監控/接口監控
             報警策略:監控時間段,報警閥值,通知方式
     

高併發ajax

  • 應用級緩存
    緩存回收策略:空間/容量/時間
    緩存回收算法:FIFO/LRU/LFU
    java堆/java堆外/磁盤緩存
    Guava/Ehcache/MapDB
    緩存使用模式Cache-Aside/Cache-As-SoR/CopyPattern
  • http緩存
    瀏覽器緩存
    HttpClient客戶端緩存
    Nginx代理層緩存
  • 多級緩存
    分佈式緩存
    熱點數據與更新緩存
    緩存崩潰與快速修復
  • 池化
    數據庫鏈接池
    HttpClient鏈接池
    線程池
  • 異步併發
    同步阻塞調用
    異步Future
    異步Callback
    異步編排CompletableFuture
    請求緩存
    請求合併
  • 擴容
    單體應用垂直擴容
    單體應用水平擴容
    應用拆分
    數據庫拆分: 水平/垂直拆分
    使用sharding-jdbc分庫分表/讀寫分離
    數據異構
    任務系統擴容(Elastic-Job)
  • 隊列異步處理/系統解耦,數據同步/流量削峯緩衝隊列/任務隊列/消息隊列,請求隊列/數據總線隊列Disruptor+Redis隊列基於Canal實現數據異構
相關文章
相關標籤/搜索