zookeeper 初步認識zk

2021-09-22 05:48:23 字數 1456 閱讀 8352

由於網際網路的快速發展,業務需求的激增,所以簡單的單體架構已經無法滿足我們的業務需求了,所以分布式架構應運而生。但是當服務越來越多的時候,規模越來越大,單靠人工管理和維護服務以及位址的配置資訊會越來越困難,所以需要有乙個服務發現與註冊中心來統一控制。

zk定義:

zookeeper 是乙個開源的分布式協調服務,由雅虎公司建立,是 google chubby 的開源實現。 zookeeper 的設計目標是將那些複雜且容易出錯的分布式一致性服務封裝起來,構成乙個高效可靠的原語集(由若干條指令組成的,完成一定功能的乙個過程),並且以一些列簡單一用的介面提供給使用者使用。

zk解決的問題:leader

–請求的唯一排程和處理者,保證集群事務處理的順序性

– 集群內部各伺服器的排程者

follower

– 處理客戶端非事務請求,**事務請求給leader伺服器

– 參與事務請求proposal的投票

– 參與leader選舉投票

observer

– 處理客戶端非事務請求,**事務請求給leader伺服器

– 不參與任何形式的投票,包括選舉和事務投票超過半數確認

– 此角色存在通常是為了提高讀效能

防止單點故障

建立zk集群

leader節點擊舉

zab協議:

zab(zookeeper atomic broadcast) 協議是為分布式協調服務 zookeeper 專門設計的一種支援崩潰恢復的原子廣播協議。在 zookeeper 中,主要依賴 zab 協議來實現分布式資料一致性,基於該協議, zookeeper 實現了一種主備模式的系統架構來保持集群中各個副本之間的資料一致性

1.崩潰恢復

– leader宕機

– 網路原因導致過半節點與leader心跳中斷

2.原子廣播

節點間的資料一致性

2pc:實現過程如圖所示:

watcher 監聽機制是 zookeeper 中非常重要的特性,我們基於 zookeeper 上建立的點,可以對這些節點繫結監聽事件,比如可以監聽節點資料變更、節點刪除、子節點狀態變更等事件,通過這個事件機制,可以基於 zookeeper實現分布式鎖、集群管理等功能

watcher 特性: 當資料發生變化的時候, zookeeper 會產生乙個 watcher 事件,並且會傳送到客戶端。 但是客戶端只會收到一次通知。如果後續這個節點再次發生變化,那麼之前設定 watcher 的客戶端不會再次收到訊息 。(watcher 是一次性的操作)。 可以通過迴圈監聽去達到永久監聽效果。

Zookeeper 初步認識及基本應用

初步認識zookeeper zookeeper是乙個開源的分布式協調服務,是由雅虎建立的,基於google chubby。基於google chubby的開源實現。zookeeper的設計目的是將那些複雜且容易出錯的分布式一致性服務封裝起來。zookeeper 是什麼 分布式資料一致性解決方案 zo...

ZK初時 Zookeeper的工作原理

通俗來講,zookeeper 的核心是原子廣播,這個機制保證了各個 server 之間的同步。實現這個機制的協議叫做 zab 協議。zab 協議有兩種模式,它們分別是恢復模式和廣播模式。當服務啟動或者在領導者崩潰後,zab 就進入了恢復模式,當領導者被選舉出來,且大多數 server 的完成了和 l...

初步認識繼承

include stdafx.h include using namespace std 構造方式跟類內類物件是一樣的 父類 info 派生類 sci 派生類 sci 父類 info struct info 父類 void outputinfo info info private int numb ...