初識ZooKeeper-ZooKeeper基本數據模型

ZooKeeper基本數據模型簡介

ZooKeeper基本數據模型歸根結底是一個樹形結構,類似於前端開發中的tree.js組件。

ZooKeeper數據模型也可以理解爲linux/unix的文件目錄:/usr/local/...

每一個節點都稱之爲znode,它可以有子節點,也可以有數據

每個節點分爲臨時節點和永久節點,臨時節點在客戶端斷開後消失,人爲可以進行刪除,或者session超時後自動刪除掉;永久節點相當於一個持久化的過程,可以人爲進行刪除,但是session超時後不會進行自動刪除。

每個ZooKeeper節點都有各自的版本號,可以通過命令行來顯示節點信息

每當節點數據發生變化時,那麼該節點的版本號會進行累加(樂觀鎖)

刪除/修改過時節點,版本號不匹配則會報錯

每個ZooKeeper節點存儲的數據不宜過大,幾K即可

節點可以設置權限acl(權限控制列表),可以通過權限來限制用戶的訪問

ZooKeeper基本數據模型基本操作

客戶端連接

我們進入ZooKeeper中bin文件夾下 命令啓動ZooKeeper

直接命令行 打入命令 ./zkCli.sh  可以看到連接到我們的localhost 端口號2181 表示的狀態已經連接

打入help可以查看我們可以輸入的命令 ,使用Ctrl+C可以退出客戶端連接:

ZooKeeper作用

1.master節點選舉,主節點掛了以後,從節點就會接受工作,並保證這個節點是唯一的,這也就是所謂的首腦模式,從而保證我們的集羣是高可用的;

2.統一配置文件管理,即只需要部署一臺服務器,就可以把相同的配置文件同步更新到其他所有的服務器上,此操作在雲計算中用的特別多(比如修改了redis統一配置)

3.發佈與訂閱,類似消息隊列MQ,dubbo發佈者將數據存在znode 上,訂閱者會讀取這個數據

4.提供分佈式鎖,分佈式環境中不同進程之間爭奪資源,類似於多線程中的鎖

5.集羣管理,集羣中保證數據的強一致性

 

 

 

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