【每日3分鐘技術乾貨 | 面試題+答案 | Zookeeper篇(一)】

1. zookeeper 是什麼?
node

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

2. zookeeper 都有哪些功能?面試

  • 集羣管理:監控節點存活狀態、運行請求等。sql

  • 主節點選舉:主節點掛掉了以後能夠從備用的節點開始新一輪選主,主節點選舉說的就是這個選舉的過程,使用 zookeeper 能夠協助完成這個過程。bash

  • 分佈式鎖:zookeeper 提供兩種鎖:獨佔鎖、共享鎖。獨佔鎖即一次只能有一個線程使用資源,共享鎖是讀鎖共享,讀寫互斥,便可以有多線線程同時讀同一個資源,若是要使用寫鎖也只能有一個線程使用。zookeeper能夠對分佈式鎖進行控制。服務器

  • 命名服務:在分佈式系統中,經過使用命名服務,客戶端應用可以根據指定名字來獲取資源或服務的地址,提供者等信息。jvm

3. zookeeper 有幾種部署模式?分佈式

zookeeper 有三種部署模式:oop

  • 單機部署:一臺集羣上運行;性能

  • 集羣部署:多臺集羣運行;

  • 僞集羣部署:一臺集羣啓動多個 zookeeper 實例運行。

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

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

5. 集羣中爲何要有主節點?

在分佈式環境中,有些業務邏輯只須要集羣中的某一臺機器進行執行,其餘的機器能夠共享這個結果,這樣能夠大大減小重複計算,提升性能,因此就須要主節點。

6. 集羣中有 3 臺服務器,其中一個節點宕機,這個時候 zookeeper 還可使用嗎?

能夠繼續使用,單數服務器只要沒超過一半的服務器宕機就能夠繼續使用。

7. 說一下 zookeeper 的通知機制?

客戶端端會對某個 znode 創建一個 watcher 事件,當該 znode 發生變化時,這些客戶端會收到 zookeeper 的通知,而後客戶端能夠根據 znode 變化來作出業務上的改變。

結語


就以這段話自勉、共勉吧。越努力、越幸運,若是你不是官二代、富二代、紅二代,那麼請記住:勤奮纔是改變你命運的惟一捷徑。

歡迎在留言區留下你的觀點,一塊兒討論提升。若是今天的文章讓你有新的啓發,學習能力的提高上有新的認識,歡迎轉發分享給更多人。


歡迎各位讀者加入程序員知識碼頭技術羣,在公衆號後臺回覆「加羣」便可。

猜你還想看

1.面試總問的jvm調優究竟是要幹什麼?

2.程序員應該有什麼樣的職業規劃?值得思考一下!

3.每日3分鐘技術乾貨 | 面試題+答案 | jvm篇(一)

4.每日3分鐘技術乾貨 | 面試題+答案 | jvm篇(二)

5.每日3分鐘技術乾貨 | 面試題+答案 | Redis篇(一)

6.每日3分鐘技術乾貨 | 面試題+答案 | Mysql篇(一)

7.每日3分鐘技術乾貨 | 面試題+答案 | RabbitMQ篇(一)


關注「程序員知識碼頭」,收看更多精彩內容複製代碼
相關文章
相關標籤/搜索