中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zookeeper理解

發布時間:2020-07-14 19:52:43 來源:網絡 閱讀:601 作者:dcx1010100 欄目:大數據

1 Zookeeper介紹

        Zookeeper是一個開源分布式應用協調服務。

簡單來說,zookeeper = 通知機制 + 文件系統

 zookeeper 為什么是奇數    

        zookeeper有這樣一個特性:集群中只要有過半的機器是正常工作的,那么整個集群對外就是可用的。也就是說如果有2個zookeeper,那么只要有1個死了zookeeper就不能用了,因為1沒有過半,所以2個zookeeper的死亡容忍度為0;同理,要是有3個zookeeper,一個死了,還剩下2個正常的,過半了,所以3個zookeeper的容忍度為1。

   

Zookeeper理解

1.1 主要角色

來自服務器端的

Zookeeper理解

>> 領導者(leader),負責進行投票的發起和決議,更新系統狀態(數據同步),發送心跳。

>> 學習者(learner),包括跟隨者(follower)和觀察者(observer)。

   >> 跟隨者(follower,用于接受客戶端請求、向客戶端返回結果,在選主過程中參與投票。

     >> 觀察者(Observer,可以接受客戶端請求,將寫請求轉發給leader,但observer不參加投票過程,只同步leader的狀態,observer的目的是為了擴展系統,提高讀取速度。

Zookeeper理解

1)leader失效后會在follower中重新選舉新的leader

2)每個follower都和leader有連接,接受leader的數據更新操作

3)客戶端可以連接到每個server,每個server的數據完全相同

4)每個節點的服務Server,記錄事務日志和快照到持久存儲

Zookeeper理解

Zookeeper理解

1.2 工作原理

        Zookeeper的核心是原子廣播,這個機制保證了各個Server之間的同步。實現這個機制的協議叫做Zab協議。

        Zab協議有兩種模式,它們分別是恢復模式(選主)和廣播模式(同步)。當服務啟動或者在領導者崩潰后,Zab就進入了恢復模式,恢復模式不接受客戶端請求,當領導者被選舉出來,且大多數Server完成了和leader的狀態同步以后,恢復模式就結束了。狀態同步保證了leader和Server具有相同的系統狀態。

1.2.1 Zookeeper節點數據操作流程

1)寫操作

Zookeeper理解

Zookeeper理解

發起提案 proposal

quorum 法定人數

1)在Client向Follwer 或 Observer 發出一個寫的請求;

2)Follwer 或 Observer 把請求發送給Leader;

3)Leader接收到以后向所有follower發起提案;

4)Follwer收到提案后執行寫操作,然后把操作結果發送給Leader;

5)當多數follower返回提案結果后,leader會commit該提議,通知其他Follower 和 Observer 同步信息;

6)Follwer 或Observer把請求結果返回給Client。

2)讀操作

1)在Client向Follwer 或 Observer 發出一個讀的請求;

2)Follwer 或 Observer 把請求結果返回給Client;

1.3 數據模型

1)ZooKeeper本質上是一個分布式的小文件存儲系統;

2)Zookeeper表現為一個分層的文件系統目錄樹結構(不同于文件系統的是,節點可以有自己的數據,而文件系統中的目錄節點只有子節點),每個節點可以存少量的數據。

3)每個節點稱做一個ZNode。每個ZNode都可以通過其路徑唯一標識。

4)圓形節點可以含有子節點,多邊形節點不能含有子節點。一個節點對應一個應用,節點存儲的數據就是應用需要的信息,比如HA狀態active、standby。

Zookeeper理解

Zookeeper理解

1.4 主要特點

最終一致性:client不論連接到哪個Server,展示給它都是同一個視圖,這是zookeeper最重要的特性;

可靠性:具有簡單、健壯、良好的性能,如果消息被某一臺服務器接受,那么它將被所有的服務器接受;

實時性:Zookeeper保證客戶端將在一個時間間隔范圍內獲得服務器的更新信息,或者服務器失效的信息。 但由于網絡延時等原因,Zookeeper不能保證兩個客戶端能同時得到剛更新的數據,如果需要最新數據,應該在讀數據之前調用sync()接口;

等待無關(wait-free):慢的或者失效的client,不得干預快速的client的請求,使得每個client都能有效的等待;

原子性:更新只能成功或者失敗,沒有中間狀態;

順序性:按照客戶端發送請求的順序更新數據;

1.5 應用場景

數據發布與訂閱

    應用配置集中到節點上,應用啟動時主動獲取,并在節點上注冊一個watcher,每次配置更新都會通知到應用。

Zookeeper理解

發布訂閱模式

Zookeeper理解

Zookeeper理解

命名空間服務

    分布式命名服務,創建一個節點后,節點的路徑就是全局唯一的,可以作為全局名稱使用。

分布式通知/協調

    不同的系統都監聽同一個節點,一旦有了更新,另一個系統能夠收到通知。

分布式鎖

    Zookeeper能保證數據的強一致性,用戶任何時候都可以相信集群中每個節點的數據都是相同的。一個用戶創建一個節點作為鎖,另一個用戶檢測該節點,如果存在,代表別的用戶已經鎖住,如果不存在,則可以創建一個節點,代表擁有一個鎖。

Zookeeper理解[][][]

集群管理

    每個加入集群的機器都創建一個節點,寫入自己的狀態。監控父節點的用戶會收到通知,進行相應的處理。離開時刪除節點,監控父節點的用戶同樣會收到通知。


Zookeeper理解



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云浮市| 吉首市| 内丘县| 仁怀市| 洪江市| 浮梁县| 城步| 时尚| 鄱阳县| 永济市| 陕西省| 东阿县| 江华| 安溪县| 恭城| 佳木斯市| 广西| 微博| 株洲市| 油尖旺区| 大连市| 正安县| 永昌县| 保德县| 嘉祥县| 泾阳县| 万州区| 定日县| 南郑县| 永德县| 巢湖市| 鱼台县| 东至县| 白沙| 夏邑县| 大石桥市| 同心县| 桃江县| 灌云县| 长寿区| 青铜峡市|