ZooKeeper面試題一

2021-10-06 19:28:11 字數 2485 閱讀 4437

1.zookeeper 是什麼?

zookeeper 是乙個 分布式 的,開放原始碼的分布式 應用程式協調服務 ,是 google 的 chubby 乙個開源的實現,它是 集群的管理者 , 監視著集群中各個節點的狀態根據節點提交的反饋進行下一步合理操作 。最終,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。

客戶端的 讀請求 可以被集群中的 任意一台機器處理 ,如果讀請求在節點上註冊了***,這個***也是由所連線的 zookeeper 機器來處理。對於 寫請求 ,這些請求會同 時發給其他 zookeeper 機器並且達成一致後,請求才會返回成功 。因此,隨著 zookeeper 的集群機器增多,讀請求的吞吐會提高但是寫請求的吞吐會下降 。有序性是 zookeeper 中非常重要的乙個特性,所有的 更新都是全域性有序的 ,每個更新都有乙個 唯一的時間戳 ,這個時間戳稱為 zxid(zookeeper transaction id) 。而 讀請求只會相對於更新有序 ,也就是讀請求的返回

結果中會帶有這個 zookeeper 最新的 zxid

2.zookeeper 提供了什麼?

1、 檔案系統

2、 通知機制

3.zookeeper 檔案系統

zookeeper 提供乙個多層級的節點命名空間(節點稱為 znode)。與檔案系統不同的是,這些節點 都可以設定關聯的資料 ,而檔案系統中只有檔案節點可以存放資料而目錄節點不行。zookeeper 為了保證高吞吐和低延遲,在記憶體中維護了這個樹狀的目錄結構,這種特性使得 zookeeper 不能用於存放大量的資料 ,每個節點的存放資料上限為 1m

4.四種型別的 znode

1、 persistent-持久化目錄節點

客戶端與 zookeeper 斷開連線後,該節點依舊存在

2、 persistent_sequential-持久化順序編號目錄節點

客戶端與 zookeeper 斷開連線後,該節點依舊存在,只是 zookeeper 給該節點名稱進行順序編號

3、 ephemeral-臨時目錄節點

客戶端與 zookeeper 斷開連線後,該節點被刪除

4、 ephemeral_sequential-臨時順序編號目錄節點

客戶端與 zookeeper 斷開連線後,該節點被刪除,只是 zookeeper 給該節點名稱進行順序編號

5.zookeeper 通知機制

client 端會對某個 znode 建立乙個 watcher 事件 ,當該 znode 發生變化時,這些 client 會收到 zk 的通知,然後 client 可以根據 znode 變化來做出業務上的改變等。

6.zookeeper 做了什麼?

1、命名服務

2、配置管理

3、集群管理

4、分布式鎖

5、佇列管理

7.zk 的命名服務(檔案系統)

命名服務是指通過指定的名字來 獲取資源 或者 服務的位址 ,利用 zk 建立乙個全域性的路徑,即是 唯一 的路徑,這個路徑就可以作為乙個名字,指向集群中的集群,提供的服務的位址,或者乙個遠端的物件等等。

8.zk 的配置管理(檔案系統、通知機制)

程式分布式的部署在不同的機器上,將程式的配置資訊放在 zk 的 znode 下,當有配置發生改變時,也就是znode 發生變化時,可以通過改變 zk 中某個目錄節點的內容,利用 watcher 通知給各個客戶端,從而更改配置

9.zookeeper 集群管理(檔案系統、通知機制)

所謂集群管理無在乎兩點: 是否有機器退出和加入、選舉 master 。

對於第一點,所有機器約定在父目錄下 建立臨時目錄節點 ,然後監聽父目錄節點的子節點變化訊息。一旦有機器掛掉,該機器與 zookeeper 的連線斷開,其所建立的臨時目錄節點被刪除, 所有其他機器都收到通知:某個兄弟目錄被刪除 ,於是,所有人都知道:它上船了。

新機器加入也是類似, 所有機器收到通知:新兄弟目錄加入 ,highcount 又有了,對於第二點,我們稍微改變一下, 所有機器建立臨時順序編號目錄節點,每次選取編號最小的機器作為 master 就好

10.zookeeper 分布式鎖(檔案系統、通知機制)

有了 zookeeper 的一致性檔案系統,鎖的問題變得容易。鎖服務可以分為兩類,乙個是 保持獨佔 ,另乙個是 控制時序 。

對於第一類,我們將 zookeeper 上的乙個 znode 看作是一把鎖 ,通過 createznode 的方式來實現。所有客戶端都去建立 /distribute_lock 節點,最終成功建立的那個客戶端也即擁有了這把鎖。用完刪除掉自己建立的distribute_lock 節點就釋放出鎖。

對於第二類, /distribute_lock 已經預先存在,所有客戶端在它下面建立臨時順序編號目錄節點,和選master 一樣, 編號最小的獲得鎖 ,用完刪除,依次方便。

Zookeeper面試題集錦

目錄 一 什麼是zookeeper?二 zookeeper保證的是哪些特性?三 zookeeper的讀寫原理?四 怎麼解釋zookeeper的有序性?五 zookeeper提供了什麼?六 zookeeper的檔案系統是什麼?七 zab協議是什麼?八 zookeeper包含哪幾種型別的資料節點?九 z...

面試題 ZooKeeper部分

zookeeper 是什麼?zookeeper是乙個分布式的,開放原始碼的分布式應用程式協調服務,是google的chubby乙個開源的實現,是hadoop和hbase的重要元件。它是乙個為分布式應用提供一致性服務的軟體,提供的功能包括 配置維護 網域名稱服務 分布式同步 組服務等。zookeepe...

zookeeper常見面試題

zookeeper是如何保證事務的順序一致性的 zookeeper採用了遞增的事務id來標識,所有的proposal都在被提出的時候加上了zxid,zxid實際上是乙個64位的數字,高32位是epoch用來標識leader是否發生改變,如果有新的leader產生出來,epoch會自增,低32位用來遞...