日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

《架构设计2.0大型分布式系统架构方法论与实践》三高笔记

發布時間:2024/3/13 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《架构设计2.0大型分布式系统架构方法论与实践》三高笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 前言
    • 高并發
      • 高并發讀
        • 動靜分離與CDN加速
        • 緩存
        • 并發讀與Pipeline
        • 重寫輕讀
        • 讀寫分離
        • 批量
      • 高并發寫
        • 數據分片
        • 任務分片
        • 異步化
        • 批量
    • 高可靠
      • 七板斧
    • 高可用
      • 高可用架構幾個核心問題

前言

  • 因為本人沒多少三高的實戰經驗,所以對《架構設計2.0大型分布式系統架構方法論與實踐》這本書的三高比較感興趣,在此做個記錄,并加入一點自己的理解(如果有錯誤的地方請批評指出,感激不盡)。
  • 何為三高?
    • 高并發:高并發是為了讓系統變得更有效率。
    • 高可靠:為了讓系統變得更靠譜,盡可能減少故障發生次數。
    • 高可用:為了故障發生后,故障恢復時間盡可能的短。

高并發

  • 高并發:高并發是為了讓系統變得更有效率。高并發又可以分為幾種側重類型:高并發讀、高并發寫、高并發讀寫。

高并發讀

動靜分離與CDN加速

  • 靜態內容常用的處理策略就是CDN。

緩存

  • 本地緩存或集中式緩存(如Redis/Memcached)。

并發讀與Pipeline

  • 并發讀:串行改并行,可以使用FutureTask、CompleteService、CompletableFuture實現,FutureTask使用具體可參考拙作使用FutureTask優化業務代碼。

  • Pipeline:多個Get操作一個個發出去,不等等返回結果,就像流入一個管道一樣,結果從另一個管道流出。這塊很像HTTP Pipeline。

重寫輕讀

  • 書中舉例微博Feeds流,要查詢用戶Feeds流時,要先查詢關注的用戶列表,不利于高并發查詢,所以為每個用戶準備一個收件箱。某人發了條微博后,給粉絲的信箱都投遞一條數據。這樣把計算邏輯從“讀”的一端移到了“寫”的一端。
  • 寬表:其實就是冗余字段。

讀寫分離

  • 例如MySQL可以做集群,讀寫分離,讀的節點可以多一些。

批量

  • 可以參考拙作高并發場景下請求合并(批量)。

高并發寫

數據分片

  • 例如MySQL分庫分表。

任務分片

  • 任務分片:例如把生產汽車的過程分成多道工序。雖然對每輛汽車來說依舊是串行的,但工序之間是并行的。對應代碼與FutureTask的含義有所關聯,FutureTask使用具體可參考拙作使用FutureTask優化業務代碼。

異步化

  • 書中舉例短信驗證碼的例子:請求發送驗證碼加入到消息隊列,由另一個程序消費。

批量

  • 書中提到了廣告計費系統的合并扣費,把用戶分組,多個扣款的請求合并成一個,也就是說只需要調用一次數據庫,減少了數據庫壓力,也提高了執行效率。雖然這是高并發寫,但同樣可以參考拙作高并發場景下請求合并(批量)。

高可靠

  • 高可靠:為了讓系統變得更靠譜,盡可能減少故障發生次數??偨Y下面7個有效措施。

七板斧

  • 1、限流
  • 2、降級
  • 3、熔斷
  • 4、超時與重試
  • 5、隔離
  • 6、灰度發布、滾動發布、備份、回滾
  • 7、監控體系和日志報警

高可用

  • 高可用:為了故障發生后,故障恢復時間盡可能的短。要想快速恢復,要避免單點。

高可用架構幾個核心問題

  • 故障探測。
  • 腦裂問題。
  • 數據一致性。
  • 對客戶端透明。
  • 高可用依賴的連環套問題。

總結

以上是生活随笔為你收集整理的《架构设计2.0大型分布式系统架构方法论与实践》三高笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。