【從入門到放棄-ZooKeeper】ZooKeeper入門

前言

ZooKeeper是一個分佈式服務協調框架,能夠用來維護分佈式配置信息、服務註冊中心、實現分佈式鎖等。在Hbase、Hadoop、kafka等項目中都有普遍的應用。隨着分佈式、微服務的普及,ZooKeeper已經成爲咱們平常開發工做中沒法繞過的一環,本文將從安裝配置到最基礎的使用入手,對其進行介紹。apache

安裝部署

下載

在 http://mirror.bit.edu.cn/apache/zookeeper/stable/ 下載推薦的stable版本。能夠直接下載編譯好的bin文件。
目前最新的stable版本是3.5.5服務器

解壓

將下載的文件解壓至工做目錄,個人工做目錄是/var/workspace/zookeepersession

tar -xzvf apache-zookeeper-3.5.5-bin.tar.gz -C /var/workspace/zookeeper

配置


此時若是直接啓動zookeeper是會失敗的,提示找不到zoo.cfg文件。併發

須要咱們把conf目錄中提供的zoo_sample.cfg示例配置文件,複製爲一份zoo.cfg,zoo.cfg是默認的啓動配置文件框架

cp ../conf/zoo_sample.cfg ../conf/zoo.cfg

啓動


默認啓動,使用config/zoo.cfg配置文件在後臺啓動分佈式


前臺啓動,會將啓動日誌打印在終端。終端關閉後服務也關閉。微服務

訪問


使用zcCli.sh -server host:port 訪問ZooKeeper服務器。
不加-server參數時,默認使用127.0.0.1:2181oop

使用

ZooKeeper使用相似資源文件目錄的方式來管理節點,每一個節點能夠存儲數據。
ZooKeeper有四種不一樣類型的節點:學習

  • PERSISTENT:持久化節點,除非手動刪除,不然會永久保存
  • PERSISTENT_SEQUENTIAL:持久化順序節點,除非手動刪除,不然會永久保存。默認會在用戶設置的節點名稱後,順序的增長十位的數字字符串。如 test_0000000001
  • EPHEMERAL:臨時節點,在session結束後,臨時節點會被自動刪除。
  • EPHEMERAL_SEQUENTIAL:臨時順序節點,在session結束後,臨時節點會被自動刪除。默認會在用戶設置的節點名稱後,順序的增長十位的數字字符串。如 test_0000000001

help

使用zkCli.sh鏈接到服務端後,可使用help展現常見命令的使用方式。url

ls

列出某個路徑下的節點

create


可使用create {path} 建立節點。
使用 create -s {path} 能夠建立有序節點,後面添加十位遞增的數字後綴。

使用 create -e 建立臨時節點,當斷開鏈接後,臨時節點會被刪除。

set/get

ZooKeeper的節點能夠存儲數據,使用set 方法將數據存在節點中。
使用get 方法,從節點中獲取數據。

set -v {currentVersion} {path} {data}

節點的數據每次更新時,都會遞增,若是要更新節點,請使用上面的命令修改,若是currentVersion不是最新版本時,則更新失敗,相似樂觀鎖CAS。

delete

能夠經過delete刪除節點。

總結

經過上面的學習,咱們已經學會了ZooKeeper最基本的安裝部署及使用方式。須要牢記:

  • ZooKeeper的節點是相似文件系統的管理方式
  • Zookeeper有四種節點類型,臨時節點會在會話斷開後自動刪除,順序節點後綴序號會自動遞增
  • set數據時,能夠指定版本號,版本號與當前版本一致時才更新。這種樂觀鎖的更新方式,能夠避免併發時數據被覆蓋


原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索