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

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


会话

会话

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 /  查看节点
mark

mark

mark
  • get path [watch]
获取指定path的信息
mark
  • set path data [version]
修改节点path对应的data
mark
  • delete path [version]
删除节点

更多命令使用help可以看到更多
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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、ZooKeeper的背景 1.1 认识ZooKeeper ZooKeeper---译名为“动物园管理员”。动物...
    algernoon阅读 9,141评论 1 106
  • 本文将从系统模型、序列化与协议、客户端工作原理、会话、服务端工作原理以及数据存储等方面来揭示ZooKeeper的技...
    端木轩阅读 3,849评论 0 42
  • ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于...
    Prize阅读 258评论 0 1
  • 版权声明: 本文在公众号「说言风语」首发 本文无需授权即可转载 本文所有图片均源自网络 全文 2965 字...
    三风mickjoust阅读 1,854评论 0 30
  • 是什么海潮汹涌波涛 席卷掉渔船的祈祷 躲避在千里之外的海岛 看着那只浮动着的羽毛 一飘一摇 消失在下一秒 幻听到漩...
    Hell_no阅读 371评论 1 0