大致來說,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感知到切換到備用程序
劍指offer 面試31題
面試31題 題目 棧的壓入 彈出元素 題 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出...
面試系列03
map map newhashmap 第一種遍歷方法 for string key map.keyset 第二種遍歷方法 for entry entry map.entryset 第三種遍歷方法 iterator it map.keyset iterator while it.hasnext arr...
Z 谷歌(Google)演算法面試題
谷歌 google 演算法面試題 1.谷歌面試題 給定能隨機生成整數 1 到 5 的函式,寫出能隨機生成整數 1 到 7 的函式。回答 此題的關鍵是讓生成的 1 到 7 的數出現概率相同。只要我們可以從 n 個數中隨機選出 1 到 n 個數,反覆進行這種運算,直到剩下最後乙個數 即可。我們可以呼叫 ...