zookeeper 修改节点数据

public class UpdateNode implements Watcher {

    private static ZooKeeper zooKeeper;

    public static void main(String[] args) throws IOException, InterruptedException {
        /**
         * 客户端可以通过创建一个zk实例来连接zk服务器
         * new Zookeeper(connectString,sessionTimeOut,Watcher)
         * connectString:连接地址:IP:端口
         * sessionTimeOut:会话超时时间:单位毫秒
         * Wather:监听器(当特定时间出发监听时,zk会通过watcher通知到客户端)
         */
        zooKeeper = new ZooKeeper("101.132.167.18:2181", 5000, new UpdateNode());
        System.out.println(zooKeeper.getState());
        //countDownLatch.await();
        System.out.println("客户端与服务端会话真正建立了");
        Thread.sleep(Integer.MAX_VALUE);
    }

    @Override
    public void process(WatchedEvent watchedEvent) {
        if (watchedEvent.getState() == Watcher.Event.KeeperState.SyncConnected) {
            try {
                updateNodeSync();
            } catch (KeeperException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 更新数据节点内容的方法
     */
    public void updateNodeSync() throws KeeperException, InterruptedException {
        /**
         * path : 路径
         * data : 要修改的内容 byte[]
         * version : 为 -1,表示对最新版本的数据进行修改
         * zooKeeper.setData(path,data,version)
         */
        byte[] data = zooKeeper.getData("/persistent",false,null);
        System.out.println("修改前的数值:" + new String(data));
        // 修改 /persistent 的数据
        Stat stat =zooKeeper.setData("/persistent","客户端修改节点数据".getBytes(),-1);
        byte[] data2 = zooKeeper.getData("/persistent",false,null);
        System.out.println("修改前的数值:" + new String(data2));
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值