Zookeeper入門篇

Zookeeper是什麼

官方文檔上這麼解釋zookeeper,它是一個分佈式服務框架,是Apache Hadoop 的一個子項目,它主要是用來解決分佈式應用中經常遇到的一些數據管理問題,如:統一命名服務、狀態同步服務、集羣管理、分佈式應用配置項的管理等。

上面的解釋有點抽象,簡單來說zookeeper=文件系統+監聽通知機制。

1、 文件系統

Zookeeper維護一個類似文件系統的數據結構:

每個子目錄項如 NameService 都被稱作爲 znode(目錄節點),和文件系統一樣,我們能夠自由的增加、刪除znode,在一個znode下增加、刪除子znode,唯一的不同在於znode是可以存儲數據的。

有四種類型的znode:

  • PERSISTENT-持久化目錄節點

    客戶端與zookeeper斷開連接後,該節點依舊存在

  • PERSISTENT_SEQUENTIAL-持久化順序編號目錄節點

    客戶端與zookeeper斷開連接後,該節點依舊存在,只是Zookeeper給該節點名稱進行順序編號

  • EPHEMERAL-臨時目錄節點

    客戶端與zookeeper斷開連接後,該節點被刪除

  • EPHEMERAL_SEQUENTIAL-臨時順序編號目錄節點

    客戶端與zookeeper斷開連接後,該節點被刪除,只是Zookeeper給該節點名稱進行順序編號

2、 監聽通知機制

客戶端註冊監聽它關心的目錄節點,當目錄節點發生變化(數據改變、被刪除、子目錄節點增加刪除)時,zookeeper會通知客戶端。

就這麼簡單,下面我們看看Zookeeper能做點什麼呢?

Zookeeper能做什麼

zookeeper功能非常強大,可以實現諸如分佈式應用配置管理、統一命名服務、狀態同步服務、集羣管理等功能,我們這裏拿比較簡單的分佈式應用配置管理爲例來說明。

假設我們的程序是分佈式部署在多臺機器上,如果我們要改變程序的配置文件,需要逐臺機器去修改,非常麻煩,現在把這些配置全部放到zookeeper上去,保存在 zookeeper 的某個目錄節點中,然後所有相關應用程序對這個目錄節點進行監聽,一旦配置信息發生變化,每個應用程序就會收到 zookeeper 的通知,然後從 zookeeper 獲取新的配置信息應用到系統中。

如上,你大致應該瞭解zookeeper是個什麼東西,大概能做些什麼了,我們馬上來學習下zookeeper的安裝及使用,並開發一個小程序來實現zookeeper這個分佈式配置管理的功能。

詳情請看:實現

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