如何理解zookeeper


Zookeeper(即dubbo的註冊中心)是出現是源自分佈式架構的出現。是爲了協調多臺服務器一致的工作而開發的一個框架。在談及zookeeper之前,首先需要了解分佈式系統工作需要解決那些問題。

舉例,如果一個分佈式架構下面有5臺機器協同在完成同一類型的工作。那麼會出現

1)資源分配問題。

對於一個任務,我們不可能讓5臺機器都去執行。只需要選出一臺負載相對比較輕的工作機執行後返回結果。

那麼這個就設計到負載均衡的功能。zookeeper實現了該功能。

2)單點故障問題

負責協調負責均衡的這臺機器宕機,結果是整個集羣都失去了控制,不能提供任何的功能。

那麼我們希望這臺服務器宕機後,其他服務器能立刻自動的替代它。這裏有一個Master/salver概念。zookeeper框架中實現了Master選舉功能。

3)數據的同步更新問題

接着上面的問題,重新選舉出來的Master是如何知道原Master掛了。在接管Master後又是怎麼獲取目前集羣中機器那些事OK的。zookeeper實現了Observer,即發佈訂閱模式實現。

4)分佈式鎖問題

如果5臺機器都需要訪問某一臺機器的資源。在同一個程序下多線程訪問,我們採用了線程鎖那解決這個問題。同理,我們想讓某一臺機器的資源只能被某臺機器訪問操作,就有了分佈式鎖。zookeeper實現了該功能。

 


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