Zookeeper源碼分析(一)

一、選中Zookeeper

 

最近準備閱讀一兩個框架的源碼,剛好準備學習關於分佈式的知識,就選中了Zookeeper。關於選擇這個框架有幾個原因。

1.可以實現集羣。

2.服務註冊與發現一直是分佈式必須要研究與使用的。

3.可以實現分佈式鎖

4.等等,各種原因,讓我選擇了它。沒辦法,只能從官網開始慢慢探索源碼之路。

 

二、學習方式

 

爲了更好的開展後面的路子,準備先前做好準備,怎麼學習非常重要。

1.Zookeeper組件總覽。熟悉哪個組件是幹什麼的,整體框架由哪些構成。

2.下載源代碼,客服端

3.運行客服端,體驗一下。

4.編譯源代碼,能夠打包等。

5.對其中一個組件挨個進行調試,代碼分析。

6.分析完一個組件,進行總結,分析爲什麼要這樣設計。我這裏爲什麼不是看完一個類就進行總結,而是看完一個組件後再來分析,原因在與,好的框架,都是高內聚,低耦合。高可用,擴展性強。這些在一個類中並不能體現出來,所以需要看完一個組件或者模塊才能看出這些優點。

 

三、源碼總覽

 

在這一章節,先整體來看下源碼的結構。至於下載源碼和客服端,留到下一章內容。

 

1.Zookeeper是什麼。

The motivation behind ZooKeeper is to relieve distributed applications the responsibility of implementing coordination services from scratch.

這是官網的一句原話:ZooKeeper背後的動機是減輕分佈式應用程序從頭開始實施協調服務的責任。

其實關鍵幾個字就是: 協調服務 責任 減輕

 

2.全局設計

Zookeeper重視高性能,高可用,以及嚴格有序的訪問。

可靠性意味這不會造成單點故障,在集羣中,只要大多數服務器可用,則服務可用。

嚴格排序,則是我們客服端實現分佈式鎖的一個重要特性

Zookeeper的數據保存在內存中,這意味着高吞吐量和低延遲。

下面是Zookeeper的一張集羣圖

Zookeeper數據格式類似於linux系統

 

 

發佈了71 篇原創文章 · 獲贊 29 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章