背景:學習zookeeper技術書籍時發現的理論,在以前項目中只是表面瞭解些相關概念,此次系統的學習了整個理論的歷史及基礎算法
概念不細說,自行學習分佈式
成果:CAP:學習
CA: 保證項目數據一致性,且高可用,在分佈式項目中並不存在CA項目,若是放棄P則意味着放棄分區容錯,那就是單應用部署spa
CP:意味着放棄高可用,通常在金融交易中,交易鏈路須要使用CP思想事務
AP:放棄數據一致性,保證高可用,如產品數量展現等部署
BASE:產品
基本可用(Basically Available):實際接觸場景,以前作過營銷類項目,在交易環節中,營銷活動是否展現並不影響用戶支付,服務降級手段,保證總體服務基本可用。class
軟狀態(Soft State):正常結果爲成功或失敗,軟狀態是指多個處理中,這種狀態後續可經過定時或回調等方式將數據置爲終態。基礎
最終一致性(Eventually Consistent) :在某個時間點數據達到一致狀態,能夠和軟狀態一塊兒看,當交易處在處理中時,多是某個銀行沒有響應或者超時,咱們能夠經過定時重發補發等機制,保障及時獲取結果更新狀態,這筆訂單在整個鏈路中多個系統都是處理中,當底層返回終態後,其餘系統也會進行更新,保障資金的完整。zookeeper
分佈式事務:
二段提交:
協調者參與事務:協調者先發送準備執行,等待多個節點返回,如都成功則進行下一步提交指令。
三段提交:
相對於二段,多了一步預提交階段,預提交階段再次確認多個節點是否能夠執行,協調者與參與者都設置了超時機制
paxos算法