ZooKeeper源碼解析(一)-入門操做

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

Zookeeper分紅客戶端和服務端兩部分,服務端一般運行於集羣模式,統一爲客戶端提供分佈式數據一致性管理服務,集羣可提供水平擴展能力,以及避免單點故障。服務器

ZooKeeper讓分佈式進程可經過共享的、與標準文件系統相似的分層名字空間相互協調。名字空間由數據寄存器(在ZooKeeper世界中稱做znode)構成,這與文件和目錄相似。與用於存儲設備的典型文件系統不一樣的是,ZooKeeper的數據每每常駐內存提供服務,提升性能。框架

Zookeeper還提供了數據動態監測機制, 客戶端註冊監聽它關心的目錄節點,當目錄節點發生變化(數據改變、被刪除、子目錄節點增長刪除)時,客戶端會觸發註冊事件。 分佈式

ZooKeeper的實現很重視高性能、高可用性,以及嚴格的順序訪問。高性能意味着可將ZooKeeper用於大的分佈式系統。可靠性使之可避免單點失敗。嚴格的順序訪問使得客戶端能夠實現複雜的同步原語。oop

服務端一般有多臺服務器,這些服務器都經過QuorumPeer進程維持分佈式系統間的數據交換,選舉領導者(Leader)和追隨者(Follower),動態監控集羣,一旦發生節點故障則從新啓動選舉流程,選出新的Leader。每一個服務器維護相同的一份全局數據,經過QuorumPeer維持數據之間的同步,這樣提供高可靠性和橫向擴展性。性能

客戶端命令行

本節從Zookeeper客戶端的角色出發,理解Zookeeper的經常使用操做方法。spa

客戶端提供的操做包括啓動、關閉、建立節點、設置節點數據、刪除節點、獲取節點、獲取節點數據等。這裏只是取其中的幾個命令作爲示例。命令行

  • 啓動客戶端

zkCli.sh進程

  • 鏈接服務端

Connect 10.10.27.21事件

  • 建立路徑節點

建立一個新的 znode ,使用 create /test 「hello」 。這個命令在根目錄下建立了一個新的 znode 節點「 test 」以及與它關聯的字符串:

  • 獲取目錄

使用 ls 命令來查看當前 ZooKeeper 中所包含的內容,這裏顯示/目錄下有test、zookeeper兩個子節點。

 

  • 獲取節點數據

運行 get 命令來確認第二步中所建立的 znode ,顯示znode的數據、建立時間等狀態信息。

示例數據:

  • 設置節點數據

經過 set 命令來對 zk 所關聯的字符串進行設置,設置/test路徑的數據爲「welcome!」。

  • 刪除節點

delete  /test

相關文章
相關標籤/搜索