cap理論告訴我們乙個分布式系統最多只能同時滿足一致性(consistency)、可用性(**ailability)和分割槽容忍性(partition tolerance)這三項中的兩項,其中ap在實際應用中較多,ap即捨棄一致性,保證可用性和分割槽容忍性,但是在實際生產中很多場景都要實現一致性,比如前邊我們舉的例子主資料庫向從資料庫同步資料,即使不要一致性,但是最終也要將資料同步成功來保證資料一致,這種一致性和cap中的一致性不同,cap中的一致性要求在任何時間查詢每個結點資料都必須一致,它強調的是強一致性,但是最終一致性是允許可以在一段時間內每個結點的資料不一致,但是經過一段時間每個結點的資料必須一致,它強調的是最終資料的一致性。
base 是 basically **ailable(基本可用)、soft state(軟狀態)和 eventually consistent (最終一致性)三個短語的縮寫。base理論是對cap中ap的乙個擴充套件,通過犧牲強一致性來獲得可用性,當出現故障允許部分不可用但要保證核心功能可用,允許資料在一段時間內是不一致的,但最終達到一致狀態。滿足base理論的事務,我們稱之為「柔性事務」。
分布式系統在出現故障時,允許損失部分可用功能,保證核心功能可用。如,電商**交易付款出現問題了,商品依然可以正常瀏覽。
由於不要求強一致性,所以base允許系統中存在中間狀態(也叫軟狀態),這個狀態不影響系統可用性,如訂單的」支付中」、「資料同步中」等狀態,待資料最終一致後狀態改為「成功」狀態。
最終一致是指經過一段時間後,所有節點資料都將會達到一致。如訂單的」支付中」狀態,最終會變為「支付成功」或者」支付失敗」,使訂單狀態與實際交易結果達成一致,但需要一定時間的延遲、等待。
分布式事務 BASE 理論
部分總結出自參考資料 問題 下面我們將會了解 acid 的基礎上進行了解 base 理論 記得在學習 mysql 的時候最早接觸的就是acid,說的是資料庫事務操作中要滿足這四個方面 分別為 以下總結來自 非原創 base理論的核心思想是 即使無法做到強一致性,但每個應用都可以根據自身業務特點,採用...
分布式理論 BASE理論
根據cap定理,我們在分布式系統最多只能在 一致性 可用性 分割槽容錯性 中三選二。那能不能解決3選2的問題呢?想要解決3選2的問題,首先需要思考分割槽是百分之百出現的嗎?如果不出現分割槽,那麼就能夠同時滿足cap。如果出現了分割槽,可以根據策略進行調整。比如c不必使用那麼強的一致性,可以先將資料存...
分布式理論 分布式事務
資料庫事務 事務的基本特性 事務有4個非常重要的特性,即我們常說的 acid atomicity 原子性 是說事務是乙個不可分割的整體,所有操作要麼全做,要麼全不做 只要事務中有乙個操作出錯,回滾到事務開始前的狀態的話,那麼之前已經執行的所有操作都是無效的,都應該回滾到開始前的狀態。consiste...