天天看點

分布式一緻性:不同的場景與一緻性級别三個場景對上述三個場景進行抽象進一步抽象:一緻性級别

文章目錄

  • 三個場景
    • 火車站售票
    • 銀行轉賬
    • 網上購物
  • 對上述三個場景進行抽象
  • 進一步抽象:一緻性級别

三個場景

火車站售票

無論在哪個售票視窗,每時每刻的餘票都必須是準确無誤的。

銀行轉賬

實時扣除的賬戶金額,到另一個賬戶上是有時延的,但是最終要求金額準确無誤。

網上購物

商品詳情頁面上顯示的庫存量,通常不是商品的真實庫存量,隻有在下單購買的時候,系統才會檢查該商品的真實庫存量。

對上述三個場景進行抽象

  1. 有些系統,既要快速地響應客戶,同時還要保證系統的資料對于任意用戶端都是真實可靠的。
  2. 有些系統,需要為使用者保證絕對可靠的資料安全,雖然在資料一緻性上存在延時,但最終務必保證嚴格的一緻。
  3. 有些系統,雖然向使用者展示了一些“錯誤”的資料,但是在整個系統使用過程中,一定會在某一個流程上對系統資料進行準确無誤的檢查,進而避免發生不必要的損失。

進一步抽象:一緻性級别

以前有寫過一緻性級别的詳細概念,參考:《強一緻性、順序一緻性、弱一緻性和共識》

這裡小結一下:

  • 強一緻性
  • 順序一緻性
  • 弱一緻性
    • 最終一緻性
      • 因果一緻性(Causal consistency)
      • 讀已之所寫(使用者一緻性)(Read your writes)
      • 會話一緻性(Session consistency)
      • 單調讀一緻性(Monotonic read consistency)
      • 單調寫一緻性(Monotonic write consistency)

繼續閱讀