1. 程式人生 > >zookeeper都有哪些使用場景

zookeeper都有哪些使用場景

 

分散式協調

  這個其實是zk很經典的一個用法,比如,A系統傳送個請求到mq,然後B拿到訊息消費之後處理了。那A系統如何知道B系統的處理結果?

  用zk就可以實現分散式系統之間的協調工作。A系統傳送請求之後可以在zk上對某個節點的值註冊個監聽器,一旦B系統處理完了就修改zk那個節點的值,A立馬就可以收到通知。

 

分散式鎖

  對某一個數據連續發出兩個修改操作,兩臺機器同時收到了請求,但是隻能一臺機器先執行另外一個機器再執行。

  那麼此時就可以使用zk分散式鎖,一個機器接收到了請求之後先獲取zk上的一把分散式鎖,就是可以去建立一個znode,接著執行操作;

  然後另外一個機器也嘗試去建立那個znode,結果發現自己建立不了,因為被別人建立了,那隻能等著,等第一個機器執行完了自己再執行。

元資料/配置資訊管理

 

  zk可以用作很多系統的配置資訊的管理,比如kafka、storm等等很多分散式系統都會選用zk來做一些元資料、配置資訊的管理,包括dubbo註冊中心

HA高可用性

  比如hadoop、hdfs、yarn等很多大資料系統,都選擇基於zk來開發HA高可用機制,就是一個重要程序一般會做主備兩個,主程序掛了立馬通過zk感知到切換到備用程序