博客 / 詳情

返回

【zookeeper 第一篇章】介紹

一、簡介

在過去,每個應用程序都是運行在一台計算機上的單程序單CPU。今天,情況變了。在大數據和雲計算領域,應用程序是由運行在不斷變化的計算機上的許多獨立程序組成的。程序員不能夠專注編寫業務代碼,反而要花費大量的時間維護各個服務之間的關係。為了解決程序員能夠專注於業務代碼的實現,zookeeper相關的應用應世而生

它支持分佈式系統的調度任務,協調任務是涉及多個進程的任務。這樣的任務是可以為了合作是為了規範爭論。合作意味着各個進程需要共同努力,而主進程採取行動使其他進程能夠正常運行。例如:在典型的主從架構中,主通知從進行工作。因此,主人可以分配任務給園丁。但是,我們確實希望有一個主進程,但是每個子進程又能稱為主進程,因此,多個進程需要實現互斥。

一個典型的分佈式數據一致性的解決方案,分佈式應用程序可以基於它實現諸如數據發佈/訂閲、負載均衡、命名服務、分佈式協調/通知、集羣管理、Master 選舉、分佈式鎖和分佈式隊列等功能。

二、數據結構

zookeeper 提供的名稱空間非常類似於標準文件系統,key-value 的形式存儲。名稱 key 由 / 分割的一系列路徑元素,zookeeper 名稱空間中的每個節點都是一個路徑標識。

三、CAP 理論

CAP理論是分佈式系統設計中的一個重要理論,它指出了在分佈式系統中,一致性(Consistency)、可用性(Availability)和分區容錯性(Partition Tolerance)這三個因素無法同時完全滿足。CAP理論最早由Eric Brewer在2000年的ACM研討會上提出,並在2003年由MIT的Seth Gilbert和Nancy Lynch正式證明。

  • 一致性(Consistency)
    在分佈式環境中,一致性是指多個副本之間是否能夠保持一致的特性,等同於所有節點訪問同一 份最新的數據副本。在一致性的需求下,當一個系統在數據一致的狀態下執行更新操作後,應該保證系統數據依然處於一致的狀態。
  • 可用性(Availability)
    每次請求能獲取到正確的響應,但是不保證獲取的數據為最新數據。
  • 分區容錯性(Partition tolerance)
    分佈式系統在遇到任何網絡分區故障的時候,依然要能夠保證提供滿足一致性和 可用性的服務,除非整個網絡環境都發生了故障。

    一個分佈式系統中最多隻能滿足兩點:分區容錯性(Partition tolerance)是必須的。
    zookeeper是滿足了CP。
    SpringCloud中的eruka實現了AP。

四、BASE 理論

BASE理論 是分佈式系統設計中的一個重要理論框架,它強調在分佈式系統中通過權衡一致性、可用性和實時性來構建高性能、高可用性和高靈活性的系統。BASE理論由 eBay 的架構師Dan Pritchett在2008年提出,是對CAP理論的一種擴展和補充。BASE理論的核心思想包括基本可用(Basically Available)、軟狀態(Soft State)和最終一致性(Eventually Consistent)三個方面。

  • 基本可用(Basically Available)
    1、響應時間上損失:正常情況下的搜索引擎0.5秒後就返回給用户結果,而基本可用的搜索引擎可以在2秒作用返回結果。
    2、功能損失:在正常情況下,用户可以順利完成每一筆訂單。但是到了大促銷期間,為了保證購物系統的穩定性,可以將其他服務引導到降級頁面。
  • 軟狀態(Soft State)
    1、硬狀態是指所有節點的數據副本的數據必須完全一致。
    2、軟狀態是允許系統在多個不同節點的數據副本可以存在數據延時。
  • 最終一致性(Eventually Consistent)
    1、因果一致性(Causal consistency)
    2、讀己之所寫(Read your writes)
    3、會話一致性(Session consistency)
    4、單調讀一致性(Monotonic read consistency)
    5、單調寫一致性(Monotonic write consistency)
user avatar cunyu1943 頭像 nian_5aedc008c1353 頭像 tracy_5cb7dfc1f3f67 頭像 fedl 頭像 lianhuatongzina 頭像 mysteryjack 頭像 yexiaobai_616e2b70869ae 頭像 hanhoudedengshanxie_66641de47decd 頭像 nogeek 頭像 zbooksea 頭像 kubesphere 頭像 u_16656615 頭像
17 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.