本套技術專欄是做者(秦凱新)平時工做的總結和昇華,經過從真實商業環境抽取案例進行總結和分享,並給出商業應用的調優建議和集羣環境容量規劃等內容,請持續關注本套博客。QQ郵箱地址:1120746959@qq.com,若有任何學術交流,可隨時聯繫。node
假設A系統發送個請求到mq,而後B消息消費以後進行處理,那A系統如何知道B系統的處理結果?用zk就能夠實現分佈式系統之間的協調工做。A系統發送請求以後能夠在zk上對某個節點的值註冊個監聽器,一旦B系統處理完了就修改zk那個節點的值,A立馬就能夠收到通知,最終實現兩個系統協調運行(好比B失敗了,A監聽不到後就會啓動重發)。分佈式
對同一個數據連續發出兩個修改操做,兩臺機器同時收到了請求,可是隻能一臺機器先執行另一個機器再執行。那麼此時就可使用zk分佈式鎖,一個機器接收到了請求以後先獲取zk上的一把分佈式鎖,就是能夠去建立一個znode,接着執行操做;而後另一個機器也嘗試去建立那個znode,結果發現本身建立不了,由於被別人建立了。。。。那隻能等着,等第一個機器執行完了本身再執行。oop
zk能夠用做不少系統的配置信息的管理,好比kafka、storm等等不少分佈式系統都會選用zk來作一些元數據、配置信息的管理,包括dubbo註冊中心一樣支持zk。大數據
好比hadoop、hdfs、yarn等不少大數據系統,都選擇基於zk來開發HA高可用機制,就是一個重要進程通常會作主備兩個,主進程掛了立馬經過zk感知到切換到備用進程3d
結合大數據在咱們工業大數據平臺的實踐,總結成一篇實踐指南,方便之後查閱反思,後續我會根據本篇博客進行代碼技術實踐實現。orm
秦凱新 2019030102120cdn