zookeeper (基本知識一)

2021-09-30 19:09:53 字數 1661 閱讀 2935

zookeeper 是檔案系統 + 監聽通知機制

最重要的核心: 客戶端監聽它關心的目錄節點,目錄節點變化之後通知客戶端 (觀察者模式)

三種角色:

leader  責進行投票的發起和決議,更新系統狀態

follower 用於接受客戶端請求並想客戶端返回結果,在選主過程中參與投票

observer 可以接受客戶端連線,將寫請求**給leader,但observer不參加投票過程,只同步leader的狀態,observer的目的是為了擴充套件系統,提高讀取速度

zookeeper 核心是原子廣播:

zookeeper 工作原理:

為了保證事務的順序一致性,zookeeper採用了遞增的事務id號(zxid)來標識事務。所有的提議(proposal)都在被提出的時候加上了zxid。實現中zxid是乙個64位的數字,它高32位是epoch用來標識

leader關係是否改變,每次乙個leader被選出來,它都會有乙個新的epoch,標識當前屬於那個leader的統治時期。低32位用於遞增計數。

每個server在工作過程中有三種狀態:

looking:當前server不知道leader是誰,正在搜尋

leading:當前server即為選舉出來的leader

following:leader已經選舉出來,當前server與之同步

工作流程:

注:1.在client向follwer發出乙個寫的請求

2.follwer把請求傳送給leader

3.leader接收到以後開始發起投票並通知follwer進行投票

4.follwer把投票結果傳送給leader

5.leader將結果彙總後如果需要寫入,則開始寫入同時把寫入操作通知給leader,然後commit;

6.follwer把請求結果返回給client

zookeeper follwer

follower主要有四個功能:

1 向leader傳送請求(ping訊息、request訊息、ack訊息、revalidate訊息);

2 接收leader訊息並進行處理;

3 接收client的請求,如果為寫請求,傳送給leader進行投票;

4 返回client結果。

follower的訊息迴圈處理如下幾種來自leader的訊息:

1 ping訊息: 心跳訊息;

2 proposal訊息:leader發起的提案,要求follower投票;

3 commit訊息:伺服器端最新一次提案的資訊;

4 uptodate訊息:表明同步完成;

5 revalidate訊息:根據leader的revalidate結果,關閉待revalidate的session還是允許其接受訊息;

6 sync訊息:返回sync結果到客戶端,這個訊息最初由客戶端發起,用來強制得到最新的更新。

zookeeper 資料型別有四種型別

znode有四種形式的目錄節點

» persistent(持久的)

» ephemeral(暫時的)

» persistent_sequential(持久化順序編號目錄節點)

» ephemeral_sequential(暫時化順序編號目錄節點)

Zookeeper基本知識介紹

1 什麼是zookeeper zookeeper是乙個分布式開源框架,提供了協調分布式應用的基本服務,它向外部應用暴露一組通用服務 分布式同步 distributed synchronization 命名服務 naming service 集群維護 group maintenance 等,簡化分布式...

基本知識總結一

一.物件導向和面向過程的區別 面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是...

ORACLE基本知識(一)

oracle 基本知識 乙個表空間只能屬於乙個資料庫 每個資料庫最少有乙個控制檔案 建議3個,分別放在不同的磁碟上 每個資料庫最少有乙個表空間 system表空間 建立system表空間的目的是盡量將目的相同的表存放在一起,以提高使用效率 每個資料庫最少有兩個聯機日誌檔案 乙個資料檔案只能屬於乙個表...