<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么說,CAP是分布式理論的基礎(chǔ)?

          共 1352字,需瀏覽 3分鐘

           ·

          2020-11-27 02:00

          分布式系統(tǒng)非常關(guān)注三個指標(biāo):

          (1)數(shù)據(jù)一致性;

          (2)系統(tǒng)可用性;

          (3)節(jié)點(diǎn)連通性與擴(kuò)展性;

          這三個指標(biāo)的關(guān)系如何,今天來聊一聊分布式理論的基礎(chǔ)CAP。


          什么是數(shù)據(jù)一致性?

          數(shù)據(jù)“強(qiáng)一致性”,是希望系統(tǒng)只讀到最新寫入的數(shù)據(jù),例如:通過單點(diǎn)串行化的方式,就能夠達(dá)到這個效果。


          關(guān)于session一致性,DB主從一致性,DB雙主一致性,DB與Cache一致性,數(shù)據(jù)冗余一致性,消息時序一致性,分布式事務(wù)一致性,庫存扣減一致性,都存在類似的一致性問題。


          什么可用性?

          如果系統(tǒng)每運(yùn)行100個時間單位,會有1個時間單位無法提供服務(wù),則說系統(tǒng)的可用性是99%。


          可用性可靠性是比較容易搞混的兩個指標(biāo),以一臺取款機(jī)為例:

          (1)正確的輸入,能夠取到正確的錢,表示系統(tǒng)可靠;

          (2)取款機(jī)7*24小時提供服務(wù),表示系統(tǒng)可用;


          保證系統(tǒng)高可用的方法是:

          (1)冗余;

          (2)故障自動轉(zhuǎn)移;


          什么是連通性與擴(kuò)展性?

          分布式系統(tǒng),往往有多個節(jié)點(diǎn),每個節(jié)點(diǎn)之間,都不是完全獨(dú)立的,需要相互通信,當(dāng)發(fā)生節(jié)點(diǎn)無法聯(lián)通時,數(shù)據(jù)是否還能保持一致,系統(tǒng)要如何進(jìn)行容錯處理,是需要考慮的。


          同時,連通性和擴(kuò)展性緊密相關(guān),想要加機(jī)器擴(kuò)展性能,必須有良好的連通性。當(dāng)一個節(jié)點(diǎn)脫離系統(tǒng),系統(tǒng)就出現(xiàn)問題,往往意味著系統(tǒng)是無法擴(kuò)展的。


          什么是CAP定理?

          CAP定理,是對上述分布式系統(tǒng)的三個特性,進(jìn)行了歸納:

          (1)一致性(Consistency);

          (2)可用性(Availability);

          (3)分區(qū)容忍性(Partition Tolerance);

          并且,定理指出,在系統(tǒng)實現(xiàn)時,這三者最多兼顧兩點(diǎn)


          一致性,可用性,多節(jié)點(diǎn)擴(kuò)展性三者只能取其二,既然加鎖已經(jīng)加上,常見的最佳工程架構(gòu)實踐是什么呢?

          互聯(lián)網(wǎng),最常見的實踐是這樣的:

          (1)節(jié)點(diǎn)連通性,多節(jié)點(diǎn)擴(kuò)展性,連通性異常的處理必須保證,滿足P;

          (2)一致性C與可用性A一般二選一;

          (3)選擇一致性C,舉例:傳統(tǒng)單庫水平切分,就是這類選型的典型;

          (4)選擇可用性A,舉例:雙主庫同步高可用,就是這類選型的典型;


          強(qiáng)一致很難怎么辦?

          單點(diǎn)串行化,雖然能保證“強(qiáng)一致”,但對系統(tǒng)的并發(fā)性能,以及高可用有較大影響,互聯(lián)網(wǎng)的玩法,更多的是“最終一致性”,短期內(nèi)未必讀到最新的數(shù)據(jù),但在一個可接受的時間窗口之后,能夠讀到最新的數(shù)據(jù)。


          例如:數(shù)據(jù)庫主從同步,從庫上的數(shù)據(jù),就是一個最終的一致。


          總結(jié)

          (1)CAP可以理解為一致性,可用性,聯(lián)通與擴(kuò)展性;

          (2)CAP三者只能取其二;

          (3)最常見的實踐是AP+最終一致性;


          除了CAP,如果想要系統(tǒng)性學(xué)習(xí)分布式理論,這里推薦一下孫玄的《萬億級企業(yè)分布式事務(wù)架構(gòu)設(shè)計的全攻略》,3天的課程,免費(fèi)。

          課題:萬億級企業(yè)分布式事務(wù)架構(gòu)設(shè)計的全攻略

          講師:孫玄

          時間:12.8-12.10三天,20:00開始

          費(fèi)用免費(fèi)(原價499,現(xiàn)價9.8,學(xué)完全退

          名額:200名,先到先得


          如何參加?

          掃碼占位,限200名額,請等待課程顧問通過


          學(xué)習(xí),永無止境,希望大家有收獲。

          閱讀原文,了解更多。

          瀏覽 16
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91大神小宝探花一区二区三区 | 色偷偷男人天堂 | 九九九色网 | 大奶一二三区 | 亚洲A片电影 |