zookeeper常用的linux命令 和 java代码

人老记忆差,记一记为好

启动:在bin目录下执行 ./zkServer.sh start (启动成功会显示:Starting zookeeper ... STARTED)
客户端连接:./zkCli.sh 或指定IP连接 ./zkCli.sh -server 192.168.122.1:2181
关闭:close

[注意]:创建节点时父节点要存在才行
创建临时节点:关键字 -e ,如 create -e /a 123456(存的值) (查看ls /,如 ls /a) [注意:临时节点不能有子节点,且临时节点只要client关闭就没了]
创建永久节点:同上,只是没有 -e
创建顺序节点:同上,关键字 -s, 如 create -s /a 123456


查看节点: ls /a(列出子节点) 或 get /a(get方法可以查看保存的数据) 或 ls2 /a(列出子节点和当前节点信息)


更新节点: set /a 654321 或  set /a 654321 2(最后面的2是get命令中获取的版本号:dataVersion)

删除节点:delete /bdelete /b 2(最后面的2是get命令中获取的版本号:dataVersion)[注:如/b下面还有节点,那就删除失败,硬来,就用命令:rmr(有点危险),如 rmr /b]


quota命令:

使用 setquota [-n] [-b] value path
-n:子节点最大数 如:setquota -n 3 /b
-b:数值最大长度 如:setquota -b 12 /b
value:-n或-b的数值
path:节点路径

设置完后可用 listquota /path 来查看设置的效果:如 listquota /b, 删除:delquota -n /b 或者 delquota -b /b

watch:监听,监听数据改变,一次性。如:get /a watch(监听a节点的数据改变,开户多个客户端,修改a节点的数据,可以看到别的客户端有watch信息反馈),哪些命令可以监听,输入 help即可看到。
 

java代码:

package com.example.demo;

import org.apache.zookeeper.*;
import org.apache.zookeeper.data.ACL;

import java.lang.String;

public class TTT {

    private static ZooKeeper zooKeeper;

    public static void main(String[] args) throws Exception {

        zooKeeper = new ZooKeeper("192.168.126.136:2181", 100000, new Watcher() {
            @Override
            public void process(WatchedEvent watchedEvent) {

                try {
                    if(watchedEvent.getPath() != null){

                        // 监听
                        System.out.println("--------------"+watchedEvent.getPath()+":"+watchedEvent.getState()+":"+watchedEvent.getType());

                        zooKeeper.exists(watchedEvent.getPath(), true);// watch完重新监听
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        // 合建节点
        zooKeeper.create("/ywj", "我".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        zooKeeper.exists("/ywj", true);// 开始监听
        zooKeeper.setData("/ywj", "是".getBytes(), -1);// 修改
        zooKeeper.setData("/ywj", "中".getBytes(), -1);// 修改
        zooKeeper.setData("/ywj", "国".getBytes(), -1);// 修改
        zooKeeper.setData("/ywj", "人".getBytes(), -1);// 修改
        zooKeeper.delete("/ywj", -1);//删除
        zooKeeper.close();
    }
}

 

ok....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值