1、首先在IDEA创建一个maven项目,并且在pom.xml里添加上
<dependencies>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.12</version>
</dependency>
</dependencies>
稍等一会查看apache.zookeeper是否安装完成,出现下面,表示安装完成
2、新建一个类,在其中实现zookeeper的增删改查
(1)实现与zookeeper的连接
public class Myzk {
//zk地址
public static final String zkconnect="81.70.168.94";
//超时时间
public static final int timeout=15000;
public static void main(String[] args) throws IOException {
ZooKeeper zooKeeper=connect();
}
//zk连接方法
public static ZooKeeper connect() throws IOException {
ZooKeeper zk=new ZooKeeper(zkconnect,timeout,null);
System.out.println("zk连接成功");
return zk;
}
}
(2)实现添加操作
//增加
public static void create(ZooKeeper zooKeeper,String node,String data) throws InterruptedException, KeeperException {
System.out.println("新建zookeeper的节点"+node+"节点的数据"+data);
List<ACL> acl= ZooDefs.Ids.OPEN_ACL_UNSAFE;//ZooDefs.Ids.OPEN_ACL_UNSAFE表示节点"/Zhao"的接入权限
/*zookeeper的节点类型
1.PERSISTENT--持久型
2.PERSISTENT_SEQUENTIAL--持久顺序型
3.EPHEMERAL--临时型
4.EPHEMERAL_SEQUENTIAL--临时顺序型
1、2种类型客户端断开后不会消失
3、4种类型客户端断开后超时时间内没有新的连接节点将会消息*/
CreateMode createMode=CreateMode.PERSISTENT;
zooKeeper.create(node,data.getBytes(),acl,createMode);
System.out.println("创建成功");
}
(3)删除
//删除
public static void delete(ZooKeeper zooKeeper,String node) throws InterruptedException, KeeperException {
//首先确定节点在不在
Stat stat=zooKeeper.exists(node,false);
System.out.println("要删除的节点"+node);
zooKeeper.delete(node, stat.getVersion());
System.out.println("删除成功");
}
(3)修改
//修改
public static void setData(ZooKeeper zooKeeper,String node,String data) throws InterruptedException, KeeperException {
//首先确定节点在不在
Stat stat=zooKeeper.exists(node,false);
System.out.println("要修改的节点:"+node+"修改的值:"+data);
zooKeeper.setData(node,data.getBytes(), stat.getVersion());
System.out.println("修改成功");
}
(4)查找
//查
public static void getData(ZooKeeper zooKeeper,String node) throws InterruptedException, KeeperException {
Stat stat=zooKeeper.exists(node,false);
System.out.println("要查找的节点"+node);
String request=new String(zooKeeper.getData(node,null,null));//因为在ZooKeeper类中getData方法是返回byte[]类型的,因此需要接一下
System.out.println("要查询的节点"+node+"查询节点的值为"+request);
}
(5)以上方法通过java实现了zookeeper的增删改查,只需要在主方法中调用即可,相当简单,我这种菜鸟都能够自己实现