zookeeper简单介绍即客户端命令行的使用
https://blog.csdn.net/kxj19980524/article/details/89364370
使用java之前先看看命令行的使用
导包,解压zookeeper的安装包,找到下面几个包,导入java项目
然后下载junit和它的依赖包,导入到项目中去
这就是一个简单的创建zookeeper客户端类
package com.buba.zookeeper;
import org.apache.zookeeper.*;
import org.junit.Before;
import org.junit.Test;
public class ZKClinet {
//连接的zk的地址及端口号配置
private String connectString = "hadoop102:2181,hadoop103:2181,hadoop104:2181";
//会话超时时间,单位毫秒
private int sessionTimeout = 2000;
private ZooKeeper zooKeeper = null;
//1.创建客户端
@Test
public void initZK() throws Exception{
zooKeeper = new ZooKeeper(connectString, sessionTimeout, new Watcher() {//Watcher就是监听节点
@Override
public void process(WatchedEvent event) {
//监听发生后触发的事
System.out.println(event.getType() + "--" + event.getPath());
}
});
}
}
创建一个子节点
package com.buba.zookeeper;
import org.apache.zookeeper.*;
import org.junit.Before;
import org.junit.Test;
public class ZKClinet {
//连接的zk的地址及端口号配置
private String connectString = "hadoop102:2181,hadoop103:2181,hadoop104:2181";
//会话超时时间,单位毫秒
private int sessionTimeout = 2000;
private ZooKeeper zooKeeper = null;
//1.创建客户端
//@Test
@Before
public void initZK() throws Exception{
zooKeeper = new ZooKeeper(connectString, sessionTimeout, new Watcher() {//Watcher就是监听节点
@Override
public void process(WatchedEvent event) {
//监听发生后触发的事
System.out.println(event.getType() + "--" + event.getPath());
}
});
}
//2.创建子节点
@Test
public void createNode() throws Exception{
//参数1:创建节点的路径;
//参数2:创建节点存储的数据;
//3.创建节点后节点具有的权限
//4.节点类型 持久的还是短暂的
String create = zooKeeper.create("/kxj","kxj".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
System.out.println(create);
}
}
在集群查看就显示创建成功了
获取某一路径下节点数
//3.获取某一路径下节点数
@Test
public void getChild()throws Exception{
//第二个参数是要不要监听
List<String> children = zooKeeper.getChildren("/", false);
for(String child : children){
System.out.println(child);
}
}
判断某一节点是否存在,第二个参数true是对这个节点进行监听,当对这个节点进行操作的时候就走了上面监听的方法了.当第二次对这个节点操作的时候就监听没反应了,因为监听只能一次.
//4.判断某一节点是否存在
@Test
public void isExists() throws Exception{
Stat exists = zooKeeper.exists("/kxj", true);
System.out.println(exists==null?"不存在":"存在");
System.in.read();
}