0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分布式系統(tǒng)CAP、ACID、BASE概念介紹

454398 ? 來(lái)源:博客園 ? 作者: 雪山飛豬 ? 2020-10-20 16:37 ? 次閱讀

CAP

分布式系統(tǒng)中,這三個(gè)特性只能滿足其中兩個(gè)。

  • 一致性(Consistency):分布式中一致性又分強(qiáng)一致性和弱一致性,強(qiáng)一致性主濁任何時(shí)刻任何節(jié)點(diǎn)看到的數(shù)據(jù)都是一樣的,弱一致性一* * 般實(shí)現(xiàn)的是最終一致性。
  • 可用性(Availability):集群在任何時(shí)間內(nèi)都正常使用
  • 分區(qū)容錯(cuò)性(Partition Tolerance):某一部分集群壞掉,另一部分仍能正常工作。

對(duì)于二選一模型

  • CA模型,在分布式系統(tǒng)中不存在,因?yàn)樯釛塒,意味著放棄分布式系統(tǒng)。比如單機(jī)版本的MySQL,如果MySQL考慮主備或集群部署時(shí),它必須考慮P
  • CP模型,舍棄了可用性,一定會(huì)讀取到最新的數(shù)據(jù),不會(huì)讀取到舊數(shù)據(jù)。一是因?yàn)橄G失、延遲過(guò)高發(fā)生了網(wǎng)絡(luò)分區(qū),就影響用戶的體驗(yàn)和業(yè)務(wù)的可用性。例如Etcd,Consul和Hbase
  • AP模型,舍棄了一致性,實(shí)現(xiàn)了服務(wù)的高可用。用戶訪問(wèn)系統(tǒng)的時(shí)候,都能得到響應(yīng)數(shù)據(jù),不會(huì)出現(xiàn)響應(yīng)錯(cuò)誤,但會(huì)讀到舊數(shù)據(jù)。比如Cassandra 和 DynamoDB。

ACID

一致性強(qiáng),但是伸縮性差

  • 原子性(Atomicity):要么全部完成,要么全部失敗
  • 一致性(Consistency):事務(wù)開(kāi)始和完成時(shí),數(shù)據(jù)必須保持一致的狀態(tài),數(shù)據(jù)庫(kù)的完整性約束沒(méi)有被破壞。比如A給B轉(zhuǎn)賬,不論轉(zhuǎn)賬事務(wù)是否成功,兩者存款的總額不變
  • 隔離性(Isolation):多個(gè)事務(wù)并發(fā)訪問(wèn)時(shí),事務(wù)之間是隔離的,一個(gè)事務(wù)不能影響到其他事務(wù)的結(jié)果 ,不能看到其他事務(wù)運(yùn)行時(shí)中間某個(gè)時(shí)刻的數(shù)據(jù)。
  • 持久性(Durability):事務(wù)完成后,該事務(wù)對(duì)數(shù)據(jù)庫(kù)所作的更改便持久地保存在數(shù)據(jù)庫(kù)中,并不會(huì)被回滾

關(guān)于二階段提交協(xié)議和TCC

  • 二階段提交。

分成提交請(qǐng)求階段(投票階段)和提交執(zhí)行階段(完成階段)。

第一個(gè)階段,每個(gè)參與者投票表決事務(wù)是放棄還是提交

第二個(gè)階段,事務(wù)的每個(gè)參與者都執(zhí)行最終統(tǒng)一的決定

  • TCC

Tty(預(yù)留)、Confirm(確認(rèn)),Cancel(撤銷)

核心思想是針對(duì)每一個(gè)操作都要注冊(cè)一個(gè)與基對(duì)應(yīng)的確認(rèn)操作和補(bǔ)償操作(撤銷操作)

BASE

一致性弱,伸縮性強(qiáng)

基本可用(Basic Availability):分布式系統(tǒng)出現(xiàn)故障時(shí),允許損失部分可用性,保證核心可用。

軟狀態(tài)(Soft-state):允許系統(tǒng)存在中間狀態(tài),而該中間狀態(tài)不會(huì)影響系統(tǒng)整體可用性。分布式存儲(chǔ)中一般一份數(shù)據(jù)至少會(huì)有3個(gè)副本,允許不同節(jié)點(diǎn)間副本同步的延時(shí)就是軟狀態(tài)的體現(xiàn)。

最終一致性((Eventual Consistency):指所有副本經(jīng)過(guò)一定時(shí)間后,最終能達(dá)到一致的狀態(tài)

ACID:大家在買同一本書的過(guò)程中,每個(gè)用戶的購(gòu)買請(qǐng)求都把庫(kù)存鎖住,等減完庫(kù)存,把鎖釋放,后續(xù)的人才能進(jìn)行購(gòu)買。于是我們同是時(shí)間不可能有多個(gè)用戶下單,訂單流程要有排隊(duì)的情況,這樣就不能做出性能比較高的系統(tǒng)來(lái)

BASE:大家可以同時(shí)下單,這個(gè)時(shí)間不需要真正的去分配庫(kù)存,然后系統(tǒng)異步地處理訂單,而且是批量的處理。因?yàn)橄聠蔚臅r(shí)候沒(méi)有扣減庫(kù)存,所以有可能會(huì)有超賣的情況。而后臺(tái)的系統(tǒng)在處理訂單時(shí),發(fā)現(xiàn)庫(kù)沒(méi)有了,才會(huì)告訴用戶你沒(méi)有購(gòu)買成功。

BASE和ACID代表兩種截然相反的設(shè)計(jì)理念,ACID注重一致性,是傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)(MySQL)的設(shè)計(jì)思路,BASE關(guān)注高可用,大多數(shù)分布式事務(wù)適合BASE.
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    分布式軟件系統(tǒng)

    在出現(xiàn)故障的幾率上不會(huì)比集中式數(shù)據(jù)庫(kù)系統(tǒng)低,但由于其故障的影響僅限于局部數(shù)據(jù)應(yīng)用,因此就整個(gè)系統(tǒng)來(lái)講它的可靠性是比較高的。 特點(diǎn) 1、在分布式數(shù)據(jù)庫(kù)系統(tǒng)里不強(qiáng)調(diào)集中控制概念,它具有一個(gè)
    發(fā)表于 07-22 14:53

    分布式發(fā)電技術(shù)與微型電網(wǎng)

    幾種分布式發(fā)電簡(jiǎn)介2.分布式發(fā)電與配電網(wǎng)互聯(lián)問(wèn)題3.微型電網(wǎng)技術(shù)4.分布式發(fā)電(電源)技術(shù)應(yīng)用的障礙和瓶頸5.分布式發(fā)電(電源)技術(shù)發(fā)展方向6.結(jié)語(yǔ)
    發(fā)表于 03-11 13:37

    關(guān)于分布式系統(tǒng)的全面介紹

    操作系統(tǒng)-----分布式系統(tǒng)概述
    發(fā)表于 07-25 06:59

    如何設(shè)計(jì)分布式干擾系統(tǒng)

    什么是分布式干擾系統(tǒng)?分布式干擾系統(tǒng)是一種綜合化、一體化、小型化、網(wǎng)絡(luò)化和智能化系統(tǒng),是將眾多體積小,重量輕,廉價(jià)的小功率偵察干擾機(jī)裝置在易
    發(fā)表于 08-08 06:57

    分布式系統(tǒng)的優(yōu)勢(shì)是什么?

    當(dāng)討論分布式系統(tǒng)時(shí),我們面臨許多以下這些形容詞所描述的 同類型: 分布式的、刪絡(luò)的、并行的、并發(fā)的和分散的。分布式處理是一個(gè)相對(duì)較新的領(lǐng)域,所以還沒(méi)有‘致的定義。與順序計(jì)算相比、并行的
    發(fā)表于 03-31 09:01

    HarmonyOS鴻蒙操作系統(tǒng)之什么是“基于微內(nèi)核的全場(chǎng)景分布式操作系統(tǒng)”?

    HarmonyOS鴻蒙操作系統(tǒng)之什么是“基于微內(nèi)核的全場(chǎng)景分布式操作系統(tǒng)”?即使作為理工科的人咋一眼看上去似乎也不太懂這是什么,就像區(qū)塊鏈這個(gè)概念剛出來(lái)一樣,普通人都是一臉懵B(當(dāng)然現(xiàn)
    發(fā)表于 09-23 17:06

    分布式系統(tǒng)時(shí)鐘解決方案

    )Naive HLC改進(jìn)HLC本文將首先依次簡(jiǎn)單介紹分布式系統(tǒng)下的物理時(shí)鐘(Physical Time,也稱PT),邏輯時(shí)鐘(Logical Clock,也稱LC),向量時(shí)鐘(Vector Clock,也稱VC
    發(fā)表于 06-28 10:46

    各種分布式電源的電氣特性

    PS:滲透率的概念:從字面上理解,“滲透”就是由分布式電源發(fā)出的功率進(jìn)入(滲入)到配電系統(tǒng),所謂的“率”就是由分布式電源發(fā)出的電和整個(gè)系統(tǒng)
    發(fā)表于 07-12 07:54

    分布式系統(tǒng)概念與設(shè)計(jì) pdf

    分布式系統(tǒng)概念與設(shè)計(jì)暢銷教材的第三版包含了分布式系統(tǒng)技術(shù)主要的最新發(fā)展。所有各章都進(jìn)行了徹底的修訂和更新,重點(diǎn)放在因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、We
    發(fā)表于 09-26 22:07 ?0次下載
    <b class='flag-5'>分布式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>概念</b>與設(shè)計(jì) pdf

    存儲(chǔ)分布式系統(tǒng)中如何從CAP轉(zhuǎn)到PACELC

    CAP理論是當(dāng)前分布式存儲(chǔ)系統(tǒng)設(shè)計(jì)的理論指導(dǎo),而PACELC理論是CAP理論的擴(kuò)展,分布式存儲(chǔ)系統(tǒng)
    發(fā)表于 06-10 01:45 ?2735次閱讀
    存儲(chǔ)<b class='flag-5'>分布式</b><b class='flag-5'>系統(tǒng)</b>中如何從<b class='flag-5'>CAP</b>轉(zhuǎn)到PACELC

    關(guān)于分布式系統(tǒng)的理論和思想

    摘要】本文談及一些分布式系統(tǒng)的理論和思想,包括 CAP、BASE、NWR等。并簡(jiǎn)單分析一些主流數(shù)據(jù)庫(kù)分布式方案的利弊,以便我們?cè)陂_(kāi)發(fā)時(shí)更深入
    發(fā)表于 09-30 17:16 ?0次下載
    關(guān)于<b class='flag-5'>分布式</b><b class='flag-5'>系統(tǒng)</b>的理論和思想

    聊一聊分布式系統(tǒng)CAP理論

    CAP理論最早發(fā)表于2000年,由加州伯克利的教授首先在ACM PODC會(huì)議上提出猜想,兩年之后,被麻省理工學(xué)院的教授Seth Gilbert和Nancy Lynch從理論上證明。從此之后,它成了分布式系統(tǒng)領(lǐng)域的公認(rèn)定理。
    的頭像 發(fā)表于 05-03 18:00 ?2592次閱讀
    聊一聊<b class='flag-5'>分布式</b><b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>CAP</b>理論

    關(guān)于分布式系統(tǒng)的幾個(gè)問(wèn)題

    本文摘自:華為云社區(qū) 作者:華為加拿大研究院軟件專家 Jet老師 小引 分布式系統(tǒng)是一個(gè)古老而寬泛的話題,而近幾年因?yàn)?大數(shù)據(jù) 概念的興起,又煥發(fā)出了新的青春與活力。本文將會(huì)通過(guò)對(duì)如下幾個(gè)問(wèn)題展開(kāi)談
    的頭像 發(fā)表于 09-23 16:28 ?3030次閱讀

    分布式系統(tǒng)概念與設(shè)計(jì)》第五版

    分布式系統(tǒng)概念與設(shè)計(jì)》第五版
    發(fā)表于 03-08 11:20 ?0次下載

    springclould分布式教程

    Spring Cloud是一個(gè)基于Spring Boot的分布式系統(tǒng)開(kāi)發(fā)工具,它提供了一系列的分布式系統(tǒng)解決方案,可以幫助開(kāi)發(fā)者快速構(gòu)建和部署分布式
    的頭像 發(fā)表于 11-16 10:59 ?452次閱讀