日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zookeeper 都有哪些使用场景?

發布時間:2024/2/28 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zookeeper 都有哪些使用场景? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面試題

zookeeper 都有哪些使用場景?

面試官心理分析

假設現在聊的話題是分布式系統,面試官跟你聊完了 dubbo 相關的一些問題之后,已經確認你對分布式服務框架/RPC框架基本都有一些認知了。

那么接下來他可能開始要跟你聊分布式相關的其它問題了,比如分布式鎖。

分布式鎖這個東西很常用,無論做 Java 系統開發或者分布式系統,都可能會有一些場景會用到。而最常用的分布式鎖就是基于 zookeeper 來實現的。

說實話,問這個問題,一般就是看看你是否了解 zookeeper,因為 zookeeper 是分布式系統中很常見的一個基礎系統。

并且面試官問的話,常問的就是 zookeeper 的使用場景是什么?看你知道不知道一些基本的使用場景。當然其實 zookeeper 挖深了自然是可以問的很深很深的。

面試題剖析

大致來說,zookeeper 的使用場景如下,我就舉下面幾個簡單的例子,大家能說這幾個就OK了:

  • 分布式協調

  • 分布式鎖

  • 元數據/配置信息管理

  • HA高可用性

分布式協調

這個其實是 zookeeper 很經典的一個用法,簡單來說,就好比你 A 系統發送個請求到 mq,然后 B 系統消息消費之后處理了。

那 A 系統如何知道 B 系統的處理結果?

答案是:用 zookeeper 就可以實現分布式系統之間的協調工作。A 系統發送請求之后可以在 zookeeper 上對某個節點的值注冊個監聽器,一旦 B 系統處理完了就修改 zookeeper 那個節點的值,A 系統立馬就可以收到通知,完美解決。

下圖用一個用戶提交訂單請求展示了整個過程:

?

分布式鎖

這是zk的第二個使用場景。舉個栗子,對某一個數據連續發出兩個修改操作,兩臺機器同時收到了請求,但是只能一臺機器先執行完另外一個機器再執行。

那么此時就可以使用 zookeeper 分布式鎖,一個機器接收到了請求之后先獲取 zookeeper 上的一把分布式鎖,就可以去創建一個 znode,接著執行操作;

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

整個過程,如下圖所示:

?

元數據/配置信息管理

第三個場景,zookeeper 可以用作很多系統的配置信息的管理,比如 kafka、storm 等等很多分布式系統都會選用 zookeeper 來做一些元數據、配置信息的管理,包括 dubbo 注冊中心不也支持 zookeeper 么?

下圖展示了如何用zookeeper管理dubbo注冊中心。

HA高可用性

第四個應用場景即高可用(HA),這個應該是很常見的。

比如 hadoop、hdfs、yarn 等很多大數據系統,都選擇基于 zookeeper 來開發 HA 高可用機制。

具體來說就是一個重要進程一般會做主備兩個,主進程掛了立馬通過 zookeeper 感知到切換到備用進程。

同樣還是通過一張圖來看看

作者:中華石杉

來源:

https://github.com/shishan100/Java-Interview-Advanced

本文版權歸作者所有

總結

以上是生活随笔為你收集整理的zookeeper 都有哪些使用场景?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。