鸟菜基础篇_2012_9_9 ZooKeeper入门基本结构(序)

来源:互联网 发布:成骨不全症数据库 编辑:程序博客网 时间:2024/05/08 17:11

zookeeper有几点需要说明:

下图为client端已经连上了server,具体连接步骤请参看zookeeper官网。很容易,不再赘述。

ZNodes关联一个状态标志的结构stat,里面是关于该节点的信息:


首先 用create创建了一个znode节点,同时指明该节点关联的数据:my_date  (注:所有znode节点都以“/” 开头)。然后调用get /zk_test命令行获取该节点信息。stat中各字段说明如下:

cZxid: 创建该节点的时间戳

ctim:创建该节点的实际时间

mZxid:最近一次修改的时间戳

mtime:最近一次修改的实际时间

cversion:该节点的children变更次数

dataVersion:该节点数据变更次数,当我们修改当前节点后,dataVersion字段会自增

dataLength: 数据长度 (byte)

numChildren:子节点个数  创建/zk_test子节点:create  /zk_test/zk_test_child1 child1 即可


0. 这里时间戳并不是我们通常说的时间,而是一些数字序列,表明修改时序。序列值大,表明是最近修改。

1. 对于任意znode节点来说,关联的数据大小原则上不要超过1M,通常是KB级别。因为zookeeper最初设计的原则并不是数据存储单元,而是维持多个节点通信的配置/规则等信息,因此不要把不相关的数据放到节点上,这样会影响zookeeper的运行效率。

2. 所有对于znode的读写都是atom的,read该节点时,是全部数据都;write时全部修改,不会出现部分被修改/读取的状况。

ZooKeeper Watches

监控节点变化 主要涉及到方法有getData()exists(),getChildren()
其中getData()exists()返回对应节点的数据,getChildren()返回子节点列表
当我们所watch的节点getData("/znode1", true)第一次发生变化时,我们会收到一个event;当/znode1再次发生变化时,server端将不会再发送event.

ACL
访问控制列表,对应的权限:
create:创建一个子节点
read:获得节点数据
wriet:为节点添加数据
delete: 删除一个子节点
admin:设置权限

基本概念就交代到这里,对于这些理解还是要落实到代码层面的。毕竟这样的概念描述太过抽象。下一节开始代码级别解析。另外,对于zk涉及到的log4j以及spring、maven、ibatis等工程中常用的组件需要给予更多关注,至少基本配置和原理要清楚。以后这些都会详细讲解。



原创粉丝点击