1. 程式人生 > 其它 >Zookeeper面試題整理含答案

Zookeeper面試題整理含答案

 

Zookeeper面試題整理含答案

zookeeper 是什麼?

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

zookeeper 都有哪些功能?

叢集管理:監控節點存活狀態、執行請求等。
主節點選舉:主節點掛掉了之後可以從備用的節點開始新一輪選主,主節點選舉說的就是這個選舉的過程,使用 zookeeper 可以協助完成這個過程。
分散式鎖:zookeeper 提供兩種鎖:獨佔鎖、共享鎖。獨佔鎖即一次只能有一個執行緒使用資源,共享鎖是讀鎖共享,讀寫互斥,即可以有多線執行緒同時讀同一個資源,如果要使用寫鎖也只能有一個執行緒使用。zookeeper可以對分散式鎖進行控制。
命名服務:在分散式系統中,通過使用命名服務,客戶端應用能夠根據指定名字來獲取資源或服務的地址,提供者等資訊。

zookeeper 有幾種部署模式?

zookeeper 有三種部署模式:

單機部署:一臺叢集上執行;
叢集部署:多臺叢集執行;
偽叢集部署:一臺叢集啟動多個 zookeeper 例項執行。

zookeeper 怎麼保證主從節點的狀態同步?

zookeeper 的核心是原子廣播,這個機制保證了各個 server 之間的同步。實現這個機制的協議叫做 zab 協議。 zab 協議有兩種模式,分別是恢復模式(選主)和廣播模式(同步)。當服務啟動或者在領導者崩潰後,zab 就進入了恢復模式,當領導者被選舉出來,且大多數 server 完成了和 leader 的狀態同步以後,恢復模式就結束了。狀態同步保證了 leader 和 server 具有相同的系統狀態。

叢集中為什麼要有主節點?

在分散式環境中,有些業務邏輯只需要叢集中的某一臺機器進行執行,其他的機器可以共享這個結果,這樣可以大大減少重複計算,提高效能,所以就需要主節點。

叢集中有 3 臺伺服器,其中一個節點宕機,這個時候 zookeeper 還可以使用嗎?

可以繼續使用,單數伺服器只要沒超過一半的伺服器宕機就可以繼續使用。

說一下 zookeeper 的通知機制?

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