zookeeper之ZkClient使用

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
}

}

创建节点:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

import org.apache.zookeeper.CreateMode;

public class CreateNode {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

User user = User.builder().id(1).name(“zzz”).build();

String path = zkCliet.create(“/node_2”, user, CreateMode.PERSISTENT);

System.out.println(path);

}

}

获取节点值:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

import org.apache.zookeeper.data.Stat;

public class GetNodeData {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

//如果获取节点状态,将stat作为参数传入即可

Stat stat = new Stat();

String user = zkCliet.readData(“/node_2”, stat);

System.out.println(“user:” + user);

System.out.println(“stat” + stat);

}

}

获取子节点信息:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

import java.util.List;

public class GetChildNode {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

List children = zkCliet.getChildren(“/node_2”);

System.out.println(“children” + children.toString());

}

}

检测某个节点是否存在:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

public class NodeExits {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

boolean exists = zkCliet.exists(“/node_2”);

System.out.println(“exists:” + exists);

}

}

删除节点:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

public class DeleteNode {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

boolean node_2 = zkCliet.delete(“node_2”);

System.out.println(“delete node_2:” + node_2);

//如果节点有子节点,使用deleteRecursive循环删除

boolean node_21 = zkCliet.deleteRecursive(“node_2”);

System.out.println(“contains child delete node_21:” + node_21);

}

}

如果有子节点会报错:

需要用deleteRecursive删除:

节点修改:

package com.zkclient;

import org.I0Itec.zkclient.ZkClient;

public class WriteData {

public static void main(String[] args) {

ZkClient zkCliet = ZkClientTool.getZkClient();

Object oldDate = zkCliet.readData(“/node_1”);

System.out.println(“oldDate:” + oldDate);

zkCliet.writeData(“/node_1”, “zkca”);

Object newDate = zkCliet.readData(“/node_1”);

System.out.println(“newDate:” + newDate);

}

}

事件订阅:

可以订阅两种事件:

1.节点的子节点列表发生变化

2.节点本身数据发生变化

首先看节点的子节点的变化的事件订阅

package com.zkclient;

import org.I0Itec.zkclient.IZkChildListener;

import org.I0Itec.zkclient.ZkClient;

import java.util.List;

public class SubScribeChildChange {

private static class ZkChildChangeListener implements IZkChildListener {

public void handleChildChange(String parentPath, List childrenList) throws Exception {

System.out.println(“parentPath:” + parentPath);

System.out.println(“childrenList:” + childrenList.toString());

}

}

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

ZkClient zkCliet = ZkClientTool.getZkClient();

//可以监听:给node_1添加子节点、删除子节点甚至node_1节点本身的创建和删除

zkCliet.subscribeChildChanges(“/node_1”, new ZkChildChangeListener());

Thread.sleep(Integer.MAX_VALUE);

}

}

删除该节点下的子节点:

独家面经总结,超级精彩

本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

image

image

image

image

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

image

image

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
m1o1g-1714684986155)]

[外链图片转存中…(img-WOZJFlCT-1714684986156)]

[外链图片转存中…(img-Phx1bz7F-1714684986156)]

Java面试准备

准确的说这里又分为两部分:

  1. Java刷题
  2. 算法刷题

Java刷题:此份文档详细记录了千道面试题与详解;

[外链图片转存中…(img-6IUDTB4s-1714684986156)]

[外链图片转存中…(img-OYsGzY3U-1714684986156)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值