高併發系統設計筆錄

1、通用設計方法
  • 縱向擴展,分庫分表
  • 前置緩存,內存加速
  • 消息隊列,異步處理
2、架構分層
  • 簡化系統設計,讓不同的人專做不同的事
  • 系統複用,提升研發的效率
  • 易於擴展,對模塊業務單獨做擴展
3、數據庫優化
  • 連接池,基於池化技術,連接複用,降低數據庫連接數
  • 主從複製,讀寫分離,數據冗餘,使用緩存
  • 分庫分表,業務類型垂直拆分,單表按照哈希或時間水平拆分,分區鍵表冗餘
  • 分佈式ID,數據庫按步遞增或雪花算法,二者皆可
  • 索引原理,B+Tree,LSM樹,跳錶,紅黑樹
4、緩存優化
  • 分佈式緩存,動態緩存,結合靜態緩存(本地緩存)
  • Cache Aside(旁路緩存)策略,Read/Write Through 和 Write Back 策略
  • 基於哈希算法的分佈式存儲
  • Codis,一種redis集羣
  • 緩存穿透,帕累托法則,回種空值,使用布隆過濾器
  • 靜態資源,CDN加速
5、消息隊列
  • 秒殺場景,異步處理,解耦合和削峯填谷

  • 消息丟失:消息重傳,異步刷盤,kafka多副本部署

  • 消費一次:冪等機制,一件事情無論做多少次,都是一樣的

  • 消費延遲:優化消費代碼,零拷貝,增加消費者數量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章