public class zkClient {
private ZkClient zkClient;
@Before
public void before(){
zkClient = new ZkClient("101.132.167.18:2181");
System.out.println("会话被创建.....");
}
@Test
public void create() {
/**
* 创建节点,是否为true,如果为true,那么就会递归创建节点
*/
zkClient.createPersistent("/zwx-zkclient/c1",true);
System.out.println("节点递归创建完成");
}
@Test
public void deleteNode(){
/**
* 递归删除节点
*/
String path = "/zwx-zkclient/c1";
zkClient.createPersistent(path + "/c2");
zkClient.deleteRecursive(path);
System.out.println("递归删除成功!!!");
}
@Test
public void getNode() throws InterruptedException {
/**
* 递归删除节点
*/
String path = "/zwx-zkclient";
List<String> children = zkClient.getChildren(path);
System.out.println(children);
// 注册监听事件
/**
* 客户端可以对一个不存在的节点进行子节点变更的监听
* 只要该节点的子节点列表,或者该节点本身被创建或者删除,都会出发监听
*/
zkClient.subscribeChildChanges("/zwx-zkclient-get", new IZkChildListener() {
/**
* s 当前节点
* list : 变化后子节点列表
*/
@Override
public void handleChildChange(String s, List<String> list) throws Exception {
System.out.println(s + "的子节点列表发生了变化,变化后的子节点列表为:" + list);
}
});
//测试
zkClient.createPersistent("/zwx-zkclient-get");
//Thread.sleep(1000);
zkClient.createPersistent("/zwx-zkclient-get/c1");
}
@Test
public void noteApi() throws InterruptedException {
//判断节点是否存在
String path = "/zwx-zkclient-ep";
boolean exists = zkClient.exists(path);
if(!exists){
zkClient.createEphemeral(path,"1234");
}
//读取节点内容
Object o = zkClient.readData(path);
System.out.println(o);
//注册监听
zkClient.subscribeDataChanges(path, new IZkDataListener() {
/**
* 节点数发生变化时,执行的回调方法
* s path
* o 变化后的节点内
*/
@Override
public void handleDataChange(String s, Object o) throws Exception {
System.out.println(s + "该节点内容被更新,更新的内容:" + o);
}
/**
* 当节点被删除时,会执行的回调方法
*/
@Override
public void handleDataDeleted(String s) throws Exception {
System.out.println(s + "该节点被删除");
}
});
//更新节点内容456
zkClient.writeData(path,"456");
Thread.sleep(1000);
//删除节点
zkClient.delete(path);
Thread.sleep(1000);
}
}
zkClient 客户端的日常使用
最新推荐文章于 2025-05-03 14:14:20 发布