1. 程式人生 > >3 zookeeper 基本數據模型

3 zookeeper 基本數據模型

圖片 nec usr href ast mil 臨時 tps 文件同步

1 zk數據模型介紹

  1. 是一個樹形結構,類似於前端開發中的tree.js組件
  2. zk的數據模型也可以理解為linux/unix的文件目錄:/usr/local/...
  3. 每一個節點都稱之為znode,它可以有子節點,也可以有數據
  4. 每個節點分為臨時節點和永久節點,臨時節點在客戶端斷開後消失
  5. 每個zk節點都有各自的版本號,可以通過命令行來顯示節點信息
  6. 每當節點數據發生變化,那麽該節點的版本號會累加(樂觀鎖)
  7. 刪除/修改過時節點,版本號不匹配則會報錯
  8. 每個zk節點存儲的數據不宜過大,幾K即可
  9. 節點可以設置權限acl,可以通過權限來限制用戶的訪問

2 zk客戶端連接關閉服務端,查看znode

Zookeeper數據模型基本操作

:

客戶端連接:

1 啟動zk服務器端:./zkServer.sh start

2 啟動zk客戶端:./zkCli.sh 回車:

技術分享圖片

技術分享圖片

[zk: localhost:2181(CONNECTED) 0] //這裏代表已經連上了localhost(本機) 端口號為:2181, CONNECTED 代表狀態是 連接狀態

3 查看znode結構

help查看zkCli.sh所有的命令

技術分享圖片

ls 查看節點

4 關閉客戶端連接 :ctrl+c

3 zookeeper的作用體現

  1. master節點選舉,主節點掛了之後,從節點就會接受工作,並且保證這個節點是唯一的,這就是所謂的首腦模式,從而保證我們的集群是高可用的
  2. 統一配置文件管理,既只需要部署一臺服務器,則可以把相同的配置文件同步更新到其他所有服務器,此操作在雲計算用的特別多(例如:假設修改了redis統一配置)
  3. 發布與訂閱,類似消息隊列MQ(amq,rmq...),dubbo發布者把數據存在znode上,訂閱者會讀取這個數據(發布者發布數據,訂閱者讀取數據,這就是發布訂閱模式。)
  4. 提供了分布式鎖,分布式環境中不同進程之間爭奪資源,類似於多線程中的鎖
  5. 集群管理,集群中保證數據的強一致性

根據慕課網風間影月老師的課程整理的筆記

3 zookeeper 基本數據模型