zookeeper手把手教程(二)

1. zookeeper特性

  • 上一章讲解了怎么配置集群,涉及到了一个关键的配置文件zoo.cfg**

zoo.cfg

tickTime=2000 #client-server 通信心跳时间(单位毫秒)

initLimit=5  #leader-follower初始通信时限

syncLimit=5  #leader-follower 同步通信时限

dataDir=/tmp     #数据文件保存

clientPort=2181     #客户端链接端口

数据模型

  • zookeeper的数据模型和文件系统类似,每一个节点称为:znode,是zookeeper的最小数据单元。每一个znode上都可以保存数据和挂在子节点。从而构成一个层次化的属性结构。

    《zookeeper手把手教程(二)》 数据结构图

节点特性

  • 持久化节点:节点创建后会一直存在zookeeper服务器上,直到主动删除
  • 持久化序列节点:每个节点都会为它的一级子节点维护一个顺序
  • 临时节点:临时节点的生命周期和客户端的==会话==保持一致。当客户端会话失效,该节点自动清理
  • 临时有序节点:在临时节点上多了一个顺序特性

==临时节点不能创建子节点==

会话

《zookeeper手把手教程(二)》 会话

Watcher

zookeeper提供了分布式数据发布/订阅,zookeeper允许客户端向服务器注册一个watcher监听。当服务端的节点触发指定事件的时候会触发watcher。服务端会向客户端发送一个事件通知。
==watcher的通知是一次性的,一旦触发一次通知后,该watcher就失效==

ACL

zookeeper提供控制节点访问权限的功能,用户有效的保证zookeeper中数据的安全性。避免误操作而导致系统出现重大事故
CREATE/READ/WRITE/DELETE/ADMIN

2. zookeeper客户端命令操作

  • create [-s] [-e] path data acl
-s 表示节点是否有序
-e 表示节点是否为临时节点
默认情况下,是持久化节点

ls /  查看节点

《zookeeper手把手教程(二)》 mark

《zookeeper手把手教程(二)》 mark

《zookeeper手把手教程(二)》 mark

  • get path [watch]
获取指定path的信息

《zookeeper手把手教程(二)》 mark

  • set path data [version]
修改节点path对应的data

《zookeeper手把手教程(二)》 mark

  • delete path [version]
删除节点

更多命令使用help可以看到更多

《zookeeper手把手教程(二)》 mark

state信息

cversion =0  #子节点版本号

aclVersion=0  #表示当前acl的版本号,修改节点的权限

dataVersion=1 #表示的是当前节点数据的版本号

czxid  #节点被创建事务id

mzxid  #节点最后一次被更新的事务ID

pzxid  #当前节点下的子节点最后一次被修改时的事务ID

ctime #创建时间

mtime #修改时间

ephemeralOwner=0x0  #创建临时节点的时候,会有一个sessionId,该值存储的就是sessionId

dataLength=3 #数据值的长度

numChildren=0  #子节点总数

–黑白 20170808 0:02

    原文作者:黑白蓝调
    原文地址: https://www.jianshu.com/p/4f64878b4c91
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞