zookeeper的使用場景?

大致來說,zk的使用場景如下,我就舉幾個簡單的,大家能說幾個就好了:

(1)分佈式協調:這個其實是zk很經典的一個用法,簡單來說,就好比,你A系統發送個請求到mq,然後B消息消費之後處理了。那A系統如何知道B系統的處理結果?用zk就可以實現分佈式系統之間的協調工作。A系統發送請求之後可以在zk上對某個節點的值註冊個監聽器,一旦B系統處理完了就修改zk那個節點的值,A立馬就可以收到通知,完美解決。

(2)分佈式鎖:對某一個數據連續發出兩個修改操作,兩臺機器同時收到了請求,但是隻能一臺機器先執行另外一個機器再執行。那麼此時就可以使用zk分佈式鎖,一個機器接收到了請求之後先獲取zk上的一把分佈式鎖,就是可以去創建一個znode,接着執行操作;然後另外一個機器也嘗試去創建那個znode,結果發現自己創建不了,因爲被別人創建了。。。。那隻能等着,等第一個機器執行完了自己再執行。

3)元數據/配置信息管理:zk可以用作很多系統的配置信息的管理,比如kafka、storm等等很多分佈式系統都會選用zk來做一些元數據、配置信息的管理,包括dubbo註冊中心不也支持zk麼   調用者在調用服務的時候可能服務還沒有註冊,這時候註冊一個監聽器,當服務註冊後會通知調用者去調用服務。

(4)HA高可用性:這個應該是很常見的,比如hadoop、hdfs、yarn等很多大數據系統,都選擇基於zk來開發HA高可用機制,就是一個重要進程一般會做主備兩個,主進程掛了立馬通過zk感知到切換到備用進程 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章