分佈式系統知識點總結

什麼是分佈式系統?

協調多個節點共同完成對外提供數據的存儲、計算等服務的系統

分佈式系統解決的問題

解決問題:可擴展性、容錯、高可用、災備

分佈式系統重要概念

複製,分區,事務,數據一致性

複製

1. 複製概念

在不同機器上保存數據的副本,目的可能有保持用戶與數據在地理位置靠近,部分節點故障系統可以繼續運行提高可用性,擴展可用處理請求的機器提高可擴展性

2. 複製算法分類

有主(單主、多主)、無主
有主:同步異步複製,同步容易造成系統不可用,異步複製容易造成主從不一致,處理節點宕機,從庫失效,追趕恢復,主庫失效,故障切換,主庫切換可能有數據不一致,腦裂的問題

3. 複製日誌

基於語句,基於行,WAL

4. 複製延遲

讀己之寫,單調讀,一致性前綴讀

5. 多主複製
  • 多個數據中心(性能更好,容忍部分數據中心停機,容忍網絡問題)
  • 處理寫衝突(同步異步檢測,避免衝突,收斂至一致的狀態,自定義衝突解決邏輯(寫時、讀時))
  • 多主拓撲復制:環形、星型、all-to-all
6. 無主複製
  • 故障恢復數據:讀修復(w+r>nw + r> n一定可以讀取最新值)、反熵過程(後臺運行數據檢查和複製進程,將節點缺少的數據從其它節點複製過來)。
  • 檢測併發寫入衝突:最後寫入勝利(丟棄併發寫入)、合併同時寫入的值、版本向量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章