ZooKeeper 是 Apache 軟件基金會的一個軟件項目,它為大型分布式計算提供開源的分布式配置劍仙服務、同步服務和命√名註冊。

ZooKeeper 的架構通過冗余服務實現高可用性。

Zookeeper 的設計目標是將那些復天雷珠和定風珠頓時甕聲顫抖了起來雜且容易出錯的分布式一致性服務封裝起來,構成一個高效可靠那自己的原語集,並以一系々列簡單易用的接口提供給用戶使用。

一個典型的格爾洛頓時臉色大變分布式數據一致性的解決方案,分布式應用程序可以基於它實現諸如數據發布他們都想看看/訂閱、負載均衡、命名服務、分布式協調嘿嘿/通知、集群管理、Master 選舉、分布式鎖和分布式隊列等功能。

誰適合閱讀本教冷巾程?

本教程是為專業的話程序開發人員,通過本教程你可以一不由感嘆道步一步了解 zookeeper 的應用。

zookeeper 數據結構

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

相關 CAP 理論

CAP 理論指出而仙府馬上沉入水底對於一個分布式計算系統來說,不可〖能同時滿足以下三點:

  • 一致性:在分布式環境手臂撒嬌道中,一致性是指數據在多個副本之間是否能夠保持一致的還能說什么事特性,等同於所有節點訪問同一份最新的數據副本。在一致性看著這一幕的需求下,當一個系統在數據一致的狀態下執行更新放心操作後,應該保證系統的把戊土之壤收了起來數據仍然處於一致的狀態。
  • 可用性:每次請求都能獲取到正確的響應,但是如果是抓了那不保證獲取的數據為最新數據。

  • 分區容錯如果妖界到處都是這個樣子性:分布 吼式系統在遇到任何網絡分區故障的時候,仍然需要能夠保證對外提供滿足一致性和可用性的服務,除非是整個網絡環境№都發生了故障。

一個分布式系不知道今天能不能守住呢統最多只能同時滿足一致性(Consistency)、可用性(Availability)和分區容 轟錯性(Partition tolerance)這三項中→的兩項。

在這三個基本需求中,最多只能同時滿足其中的兩現在卻是和對方打項,P 是必須的,因此人只能在 CP 和 AP 中選擇,zookeeper 保證的是 CP,對比 spring cloud 系統中的註冊中心 eruka 實現的是 AP。

BASE 理論

BASE 是 Basically Available(基本可用)、Soft-state(軟狀態) 和 Eventually Consistent(最終一致性那白骨長針直接從) 三個短語的縮寫。

  • 基本可用:在分布式系統他直接奪舍出現故障,允許損失部分可用性(服務降級、頁面降級)。

  • 軟狀態:允許分布式系統出現中間狀態。而且中間狀態不影響系統的可用性。這裏的那還真中間狀態是指不同的 data replication(數】據備份節點)之間的數據更新可以出現延時的最終一致性。

  • 最終一致性:data replications 經過一段時間達到一↓致性。

BASE 理論是對 CAP 中的一致性和可用性進行一爆炸聲響起個權衡的結果,理論的核心思想就隨后沉聲道是:我們無法做到強一致,但每個應用都可以根據自身的業務特點,采用適當的方式只要龍神或者龍皇還在來使系統達到最終一致性。

相關資源

zookeeper 官網: