1. 程式人生 > >分布式系統的面試題11

分布式系統的面試題11

自己 剖析 大致 聽說 com hello 你知道 alt 監聽

1、面試題

zk都有哪些使用場景?

2、面試官心裏分析

zkzookeeper,你們現在在聊的面試topic,是分布式系統,他其實已經跟你聊完了dubbo以及相關的一些問題,確認,你現在分布式服務框架,rpc框架,基本都有一些認知。可能開始要跟你聊分布式相關的其他問題了。

分布式鎖這個東西,很常用的,你做java系統開發,分布式系統,可能會有一些場景會用到。最常用的分布式鎖就是zookeeper來做分布式鎖。

其實說實話,問這個問題,一般就是看看你是否了解zk,因為zk是分布式系統中很常見的一個基礎系統。而且問的話常問的就是說zk的使用場景是什麽?看你知道不知道一些基本的使用場景。但是其實

zk挖深了自然是可以問的很深很深的。

友情提示,如果有某個同學連zookeeper是什麽都不知道?聽說過,連個基本原理都不知道,連個demo都沒寫過。我建議你先暫停這個課程,先百度一下,zookeeper入門,最好寫helloworld級別的demo程序,體驗一把。

3、面試題剖析

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

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

B系統處理完了就修改zk那個節點的值,A立馬就可以收到通知,完美解決。

技術分享圖片

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

技術分享圖片

3)元數據/配置信息管理:zk可以用作很多系統的配置信息的管理,比如kafkastorm等等很多分布式系統都會選用zk來做一些元數據、配置信息的管理,包括

dubbo註冊中心不也支持zk

技術分享圖片

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

技術分享圖片

分布式系統的面試題11