CAP 理论、BASE 理论、FLP 理论
CAP 理論、BASE 理論、FLP 理論
CAP 理論、BASE 理論、FLP 理論
1.CAP 理論
C(Consistency) 一致性:
在寫操作之后的所有讀操作,必須要返回寫入的值。
A(Availability) 可用性:
只要收到用戶的請求,服務端就必須給出回應。
P(Partition tolerance) 分區(qū)容錯性:
一個分布式系統(tǒng)里面,節(jié)點組成的網絡本來應該是連通的。然而可能因為一些故障,使得有些節(jié)點之間不連通了,整個網絡就分成了幾塊區(qū)域。數(shù)據(jù)就散步在了這些不連通的區(qū)域中。這就叫分區(qū);當你一個數(shù)據(jù)項只在一個節(jié)點中保存,那么分區(qū)出現(xiàn)后,和這個節(jié)點不連通的部分就訪問不到這個數(shù)據(jù)了。這個時候分區(qū)就是無法容錯的。
notes:數(shù)據(jù)存在的節(jié)點越多,分區(qū)容錯性越高,但要復制更新的數(shù)據(jù)就越多,一致性就越難保證。為了保證一致性,更新所有節(jié)點數(shù)據(jù)所需要的時間就越長,可用性就會降低。
2.BASE 理論
BASE(Basically Availabl, Softstate, Eventually consistent):
CAP 理論的延申,核心思想是即使無法達到強一致性,但也可以采用適合的方式犧牲一定的一致性,從而達到最終一致性,以及換取一定的可用性。
Basically Available: 基本可用。是指分布式系統(tǒng)在出現(xiàn)故障的時候,允許損失部分可用性,即保證核心可用。
Softstate: 軟狀態(tài)。是指允許系統(tǒng)中的數(shù)據(jù)存在中間狀態(tài),并認為該狀態(tài)不影響系統(tǒng)的整體可用性,即允許系統(tǒng)在多個不同節(jié)點的數(shù)據(jù)副本存在數(shù)據(jù)延時。
Eventual Consistency:
最終一致性。是指分布式系統(tǒng)處于軟狀態(tài)的時間必須是有限的,在期限過后,應當保證所有副本保持數(shù)據(jù)一致性,從而達到數(shù)據(jù)的最終一致性。這個時間期限取決于網絡延時、系統(tǒng)負載、數(shù)據(jù)復制方案設計等因素。
最終一致性在實際工程實踐中,分為5種:
1.因果一致性(Causal consistency):
如果節(jié)點A在更新完某個數(shù)據(jù)之后通知了節(jié)點 B,那么節(jié)點B之后對該數(shù)據(jù)的訪問和修改都是基于A更新后的值。與此同時,和節(jié)點A無因果關系的節(jié)點C的數(shù)據(jù)訪問則沒有這樣的限制。
2.讀己之所寫(Read Your writes)
節(jié)點A更新一個數(shù)據(jù)后,它自己總是能訪問到自身更新過的最新值,而不會看到舊值。屬于因果一致性的一種特殊情況。
3.會話一致性(Session consistency)
會話一致性將對系統(tǒng)數(shù)據(jù)的訪問過程框定在了一個會話當中:系統(tǒng)能保證在同一個 有效 的會話中實現(xiàn)“讀己之所寫”的一致性,也就是說,執(zhí)行更新操作之后,客戶端能夠在同一個會話種 始終讀取到該數(shù)據(jù)項的最新值。(PS:其實這很像關系型數(shù)據(jù)庫中的可重復讀事務隔離級別。)
4.單調讀一致性(Monotonic read consistency)
如果一個節(jié)點從系統(tǒng)中讀取出一個數(shù)據(jù)項的某個值之后,那么系統(tǒng)對于該節(jié)點后續(xù)的任何數(shù)據(jù)訪問都不應返回更舊的值。
5.單調寫一致性(Monotonic write consistency)
一個系統(tǒng)要能夠保證來自同一個節(jié)點的寫操作被順序的執(zhí)行(與禁止指令重排序有點像)。
在實際的項目中,這五種方案往往會結合使用,用以構建分布式系統(tǒng)的最終一致性。
ACID 和 BASE的區(qū)別和聯(lián)系:
ACID 是傳統(tǒng)數(shù)據(jù)庫常用的設計理念,追求強一致性模型;
BASE 是大型分布式系統(tǒng),用最終一致性代替強一致性,來獲取一定的可用性的新模型。
3.FLP理論
FLP理論(FLP Imposibility):
在異步通信的場景中,因為各個節(jié)點之間的延時,是否宕機等不確定因素的存在,所以不存在任何算法能達到強一致性。簡而言之在實際的分布式系統(tǒng)中,一致性算法的可靠性是無法保證的,即不存在一個能在異步網絡上能夠容忍各種故障并保持一致的分布式系統(tǒng)。
總結
以上是生活随笔為你收集整理的CAP 理论、BASE 理论、FLP 理论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php正则重复匹配,php – 用于匹配
- 下一篇: 技校毕业是什么学历_初中毕业上技校学什么