部分總結出自參考資料問題 :
下面我們將會了解 acid 的基礎上進行了解 base 理論 。
記得在學習 mysql 的時候最早接觸的就是acid,說的是資料庫事務操作中要滿足這四個方面 ,分別為 :
以下總結來自 : ,非原創base理論的核心思想是:即使無法做到強一致性,但每個應用都可以根據自身業務特點,採用適當的方式來使系統達到最終一致性。接下來看一下base中的三要素:
基本可用是指分布式系統在出現不可預知故障的時候,允許損失部分可用性----注意,這絕不等價於系統不可用。比如:
(2)系統功能上的損失:正常情況下,在乙個電子商務**上進行購物的時候,消費者幾乎能夠順利完成每一筆訂單,但是在一些節日大促購物高峰的時候,由於消費者的購物行為激增,為了保護購物系統的穩定性,部分消費者可能會被引導到乙個降級頁面
軟狀態指允許系統中的資料存在中間狀態,並認為該中間狀態的存在不會影響系統的整體可用性,即允許系統在不同節點的資料副本之間進行資料同步的過程存在延時
最終一致性強調的是所有的資料副本,在經過一段時間的同步之後,最終都能夠達到乙個一致的狀態。因此,最終一致性的本質是需要系統保證最終資料能夠達到一致,而不需要實時保證系統資料的強一致性。
總的來說,base理論面向的是大型高可用可擴充套件的分布式系統,和傳統的事物acid特性是相反的,它完全不同於acid的強一致性模型,而是通過犧牲強一致性來獲得可用性,並允許資料在一段時間內是不一致的,但最終達到一致狀態。但同時,在實際的分布式場景中,不同業務單元和元件對資料一致性的要求是不同的,因此在具體的分布式系統架構設計過程中,acid特性和base理論往往又會結合在一起。
亞馬遜cto werner vogels在於2023年發表的一篇文章中對最終一致性進行了非常詳細的介紹文章學習了 base 理論提出的動機和解釋 base 理論的主要內容。【英文】all things distributed
【譯】最終一致性
分布式理論 BASE理論
根據cap定理,我們在分布式系統最多只能在 一致性 可用性 分割槽容錯性 中三選二。那能不能解決3選2的問題呢?想要解決3選2的問題,首先需要思考分割槽是百分之百出現的嗎?如果不出現分割槽,那麼就能夠同時滿足cap。如果出現了分割槽,可以根據策略進行調整。比如c不必使用那麼強的一致性,可以先將資料存...
分布式理論 分布式事務
資料庫事務 事務的基本特性 事務有4個非常重要的特性,即我們常說的 acid atomicity 原子性 是說事務是乙個不可分割的整體,所有操作要麼全做,要麼全不做 只要事務中有乙個操作出錯,回滾到事務開始前的狀態的話,那麼之前已經執行的所有操作都是無效的,都應該回滾到開始前的狀態。consiste...
分布式CAP理論和BASE理論
現如今,在分布式場景下,集群規模越來越大,節點越來越多。所以說節點故障 網路故障會是常態化產生,因此分割槽容錯性 p 是必須要保證的。所以只能在一致性 c 和可用性 a 之間來進行取捨。但對於傳統的專案就可能有所不同,拿銀行的轉賬系統來說,涉及到金錢的對於資料一致性不能做出一絲的讓步,c必須保證,出...