【从入门到放弃-ZooKeeper】ZooKeeper入门
前言
ZooKeeper是一個分布式服務協調框架,可以用來維護分布式配置信息、服務注冊中心、實現分布式鎖等。在Hbase、Hadoop、kafka等項目中都有廣泛的應用。隨著分布式、微服務的普及,ZooKeeper已經成為我們日常開發工作中無法繞過的一環,本文將從安裝配置到最基礎的使用入手,對其進行介紹。
安裝部署
下載
在?http://mirror.bit.edu.cn/apache/zookeeper/stable/?下載推薦的stable版本。可以直接下載編譯好的bin文件。
目前最新的stable版本是3.5.5
解壓
將下載的文件解壓至工作目錄,我的工作目錄是/var/workspace/zookeeper
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是默認的啟動配置文件
啟動
默認啟動,使用config/zoo.cfg配置文件在后臺啟動
前臺啟動,會將啟動日志打印在終端。終端關閉后服務也關閉。
訪問
使用zcCli.sh -server host:port 訪問ZooKeeper服務器。
不加-server參數時,默認使用127.0.0.1:2181
使用
ZooKeeper使用類似資源文件目錄的方式來管理節點,每個節點可以存儲數據。
ZooKeeper有四種不同類型的節點:
- PERSISTENT:持久化節點,除非手動刪除,否則會永久保存
- PERSISTENT_SEQUENTIAL:持久化順序節點,除非手動刪除,否則會永久保存。默認會在用戶設置的節點名稱后,順序的增加十位的數字字符串。如 test_0000000001
- EPHEMERAL:臨時節點,在session結束后,臨時節點會被自動刪除。
- EPHEMERAL_SEQUENTIAL:臨時順序節點,在session結束后,臨時節點會被自動刪除。默認會在用戶設置的節點名稱后,順序的增加十位的數字字符串。如 test_0000000001
help
使用zkCli.sh連接到服務端后,可以使用help展示常見命令的使用方式。
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數據時,可以指定版本號,版本號與當前版本一致時才更新。這種樂觀鎖的更新方式,可以避免并發時數據被覆蓋
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的【从入门到放弃-ZooKeeper】ZooKeeper入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Knative Eventing 之 S
- 下一篇: 闲鱼推荐,让智能计算从云走向端