面試簡單整理之zookeeper


157.zookeeper 是什么?

 ZooKeeper 是一個開源的分布式協調服務,由雅虎創建,是 Google Chubby 的開源實現。
分布式應用程序可以基於 ZooKeeper 實現諸如數據發布/訂閱、負載均衡、命名服務、分布式協
調/通知、集群管理、Master 選舉、配置維護,名字服務、分布式同步、分布式鎖和分布式隊列等功能。
View Code

158.zookeeper 都有哪些功能?

1.配置中心
2.命名服務
3.Master選舉
4.分布式鎖 -------------------redis鎖、數據庫鎖
5.服務注冊與推送
View Code

159.zookeeper 有幾種部署模式?

  單機模式,集群模式,偽集群模式

160.zookeeper 怎么保證主從節點的狀態同步?

Zookeeper的核心是原子廣播機制,這個機制保證了各個server之間的同步。實現這個機制的協議叫做Zab協議。Zab協議有兩種模式,它們分別是恢復模式和廣播模式。
(1) 恢復模式
當服務啟動或者在領導者崩潰后,Zab就進入了恢復模式,當領導者被選舉出來,且大多數server完成了和leader的狀態同步以后,恢復模式就結束了。狀態同步保證了leader和server具有相同的系統狀態。
(2) 廣播模式
一旦Leader已經和多數的Follower進行了狀態同步后,他就可以開始廣播消息了,即進入廣播狀態。這時候當一個Server加入ZooKeeper服務中,它會在恢復模式下啟動,發現Leader,並和Leader進行狀態同步。待到同步結束,它也參與消息廣播。ZooKeeper服務一直維持在Broadcast狀態,直到Leader崩潰了或者Leader失去了大部分的Followers支持。
View Code

 

161.集群中為什么要有主節點?

162.集群中有 3 台服務器,其中一個節點宕機,這個時候 zookeeper 還可以使用嗎?

163.zookeeper 的通知機制? 

   客戶端在向 ZooKeeper 服務器注冊 Watcher 的同時,會將 Watcher 對象存儲在客戶端的 WatchManager 中。當ZooKeeper 服務器觸發 Watcher 事件后,會向客戶端發送通知,客戶端線程從 WatchManager 的實現類中取出對應的 Watcher 對象來執行回調邏輯。

164.dubbo使用zookeeper做注冊中心,注冊中心集群全都掛掉,發布者和訂閱者之間還能通信么?

    可以。消費者啟動時會從zk拉取注冊的生產者列表存在本地,調用時使用本地存儲的地址進行調用。但是無法獲取最新的服務列表。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM