zkCli.sh的使用
./zkClin.sh -timeout 0 -r -server 192.168.0.3:2181
-timeout多少毫秒内需连接成功, -r只读模式
zkClin.sh连接成功需要zkServer正常启动
h
指令显示所有操作命令:
查询操作
ls
列出某个节点下所有子节点信息,如:ls /
stat
查询某个节点的状态信息
get
获取当前节点存储的数据内容
ls2
列出当前节点所有子节点同时输出节点状态信息
创建操作
create
-s顺序节点 -e临时节点 acl权限,临时节点客户端会话结束后会自动删除
修改操作
set
version设置版本号,可看作乐观锁
删除操作
delete
只能删除没有子节点的节点
rmr
循环删除有子节点的节点
配额操作
setquota
设置配额,-n限制子节点个数,-b限制数据值长度
zookeeper发现配额超过限制仅仅在日志记录警告信息。
日志在/bin目录下zookeeper.out中查看 tail zookeeper.out
listquota
用于查看配额,stat包含了自己和子节点的状态
delquota
删除配额
其他操作
connect
连接其他服务器
close
关闭与其他服务器连接
history
查看执行指令的历史
redo
重新执行history列出的指令列表中的指令
JavaAPI
zookeeper依赖包:
创建连接:
public class createSession implements Watcher {
private static ZooKeeper zookeeper = null;
public static void main(String[] args) throws IOException {
zookeeper = new ZooKeeper("192.168.0.3:2181",5000,new createSession());//ip地址,timeout,watcher实例
System.out.println(zookeeper.getState());
Thread.sleep(Integer.MAX_VALUE);
}
@Override
public void process(WatchedEvent event) {
System.out.println("rec:" + event); //wacher收到的事件,注册一次只能监控一次变化即收到一次变化的信息
}
}
console:
CONNECTING
rec:WatchedEvent state:SyncConnected type:None path:null
同步创建节点:
@Override
public void process(WatchedEvent event) {
System.out.println("rec:" + event); //wacher收到的事件
if(event.getState() == KeeperSta