BASE理論
理解強(qiáng)一致性和最終一致性
- CAP理論告訴我們一個分布式系統(tǒng)最多只能同時滿足一致性(Consistency)貌矿,可用性(Availability)和分區(qū)容錯性(Partition tolerance)這三項中的兩項克握,其中AP在實際應(yīng)用中較多,AP即舍棄一致性孽江,保證可用性和分區(qū)容錯性婉烟,但是在實際生產(chǎn)中很多場景都要實現(xiàn)一致性,比如前邊我們舉的例子主數(shù)據(jù)庫向從數(shù)據(jù)庫同步數(shù)據(jù)联予,即使不要一致性子刮,但是最終也要將數(shù)據(jù)同步成功來保證數(shù)據(jù)一致裳朋,這種一致性和CAP中的一致性不同惕耕,CAP中的一致性要求在任何時間查詢每個結(jié)點(diǎn)數(shù)據(jù)都必須一致,它強(qiáng)調(diào)的是強(qiáng)一致性丛肢,但是最終一致性是允許可以在一段時間內(nèi)每個結(jié)點(diǎn)的數(shù)據(jù)不一致撰洗,但是經(jīng)過一段時間每個結(jié)點(diǎn)的數(shù)據(jù)必須一致,它強(qiáng)調(diào)的是最終數(shù)據(jù)的一致性猪勇。
Base理論介紹
- BASE是Basically Available(基本可用),Soft state(軟狀態(tài))和Eventually Consistent(最終一致性)三個短語的縮寫外冀。BASE理論是對CAP中的一個擴(kuò)展,通過犧牲強(qiáng)一致性來獲得可用性马僻,當(dāng)出現(xiàn)故障允許部分不可用但要保證核心功能可用仍秤,允許數(shù)據(jù)在一段時間內(nèi)是不一致的袜茧,但最終達(dá)到一致狀態(tài)逗宁。滿足BASE理論的事務(wù),我們稱之為“柔性事務(wù)”
- 基本可用:分布式系統(tǒng)在出現(xiàn)故障時捌议,允許損失部分可用功能哼拔,保證核心功能可用。如瓣颅。電商網(wǎng)站交易付款出現(xiàn)問題倦逐,商品依然可以正常瀏覽。
- 軟狀態(tài):由于不要求強(qiáng)一致性弄捕,所以BASE允許系統(tǒng)中存在中間狀態(tài)(也叫軟狀態(tài)),這個狀態(tài)不影響系統(tǒng)可用性导帝,如訂單的“支付中”守谓,“數(shù)據(jù)同步中”等狀態(tài),待數(shù)據(jù)最終一致后狀態(tài)改為“成功”狀態(tài)您单。
- 最終一致:最終一致是指經(jīng)過一段時間后斋荞,所有節(jié)點(diǎn)數(shù)據(jù)都將會達(dá)到一致。如訂單的“支付中”狀態(tài)虐秦,最終會變?yōu)椤爸Ц冻晒Α被蛘摺爸Ц妒 逼侥穑褂唵螤顟B(tài)與實際交易結(jié)果達(dá)成一致,但需要一定時間的延遲悦陋,等待蜈彼。