zookeeper相关操作命令:
- 列出子节点: ls /;
- 创建节点:create /yum "this is a node";
- 查看节点:get /yum;
- 删除节点:delete /yum;注:删除时,该节点下不能拥有子节点;
- 删除所有节点:deleteall /yum;
zookeeper节点类型:
PERSISTENT | 持久节点 |
PERSISTENT_SEQUENTIAL | 持久序号节点 |
EPHEMERAL | 临时节点(不可在拥有子节点) |
EPHEMERAL_SEQUENTIAL | 临时序号节点(不可在拥有子节点) |
1.PERSISTENT(持久节点),默认创建的就是持久节点;
create /yum001 "持久";
2.PERSISTENT_SEQUENTIAL(持久序号节点),创建时加上 -s 参数即可:
create -s /yum002 "持久序号";
3.EPHEMERAL(临时节点),会话断开后删除,创建时添加上 -e 参数即可;
create -e /yum003 "临时节点";
4.EPHEMERAL_SEQUENTIAL(临时序号节点),会话断开后删除,创建时添加上 -e -s 参数即可;
create -e -s /yum004 "临时序号几点"
验证临时节点:
此时,会话处于连接状态,ls / 查看一下所有子节点:
关闭当前会话:close
再连接:connect host:port
此时连个临时节点 /yum003 /yum0040000000009 都不存在了
节点属性:
查看节点属性:stat /yum;
其中属性说明:
cZxid:创建节点的事务ID;ctime:创建时间;mZxid:修改节点的事务ID;mtime:最后修改的时间;
pZxid:子节点变更的事务ID;cversion:对此节点的子节点变更的次数;dataVersion:数据版本,变更的次数;
aclVersion:权限版本,变更次数;ephemeralOwner:临时节点所属会话ID;dataLength:数据长度;
numChildren:子节点的个数;
节点的监听:
客户添加 -w 参数可实时监听节点以及子节点的变化,并且实时收到通知。非常适合分布式下数据一致性。
命令 | 描述 |
ls -w path | 监听子节点的变化(增,删) |
get -w path | 监听节点数据的变化 |
stat -w path | 监听节点属性的变化 |
printwatches on|off | 触发监听后,是否打印监听事件(默认on) |
ACL(Access Control List[访问控制列表])权限设置:基于scheme:id:permission方式进行控制。
scheme授权模式;id模式对应值;permission具体的增删改权限位;
scheme认证模式:
方案 | 描述 |
world | 开放模式,world表示全世界都可以访问(这是默认设置) |
ip | ip模式,限定客户端IP防问 |
auth | 用户密码认证模式,只有在会话中添加了认证才可以防问 |
digest | 与auth类似,区别在于auth用明文密码,而digest 用sha-1+base64加密后的密码。在实际使用中digest 更常见。 |
permission权限位:
权限位 | 权限 | 描述 |
c | CREATE | 可以创建子节点 |
d | DELETE | 可以删除子节点(仅下一级节点) |
r | READ | 可以读取节点数据及显示子节点列表 |
w | WRITE | 可以设置节点数据 |
a | ADMIN | 可以设置节点访问控制列表权限 |
设置ACL相关命令:
1.查看节点权限:getAcl /yum;
2.设置rw权限:setAcl /yum world:anyone:rw;此表示只有读写权限。
3.IP权限:setAcl /yum ip:192.168.21.88:cdrwa;给IP为192.168.21.88设置权限;
4.auth权限:addauth digest test:123456 setAcl /yum auth:test:cdrwa;