java操作zookeeper
使用java代码对zookeeper集群做基本的操作
1.启动zookeeper集群
2.在eclipse中编写ZookeeperAPI类进行操作
进行连接操作
package com.zookeeper.run;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.junit.Before;
import org.junit.Test;
public class ZookeeperAPI {
ZooKeeper zooKeeper;
@Test
public void zookeeperConn() throws IOException, InterruptedException {
CountDownLatch cdl = new CountDownLatch(1);
zooKeeper = new ZooKeeper("192.168.75.101:2181", 5000, new Watcher() {
@Override
public void process(WatchedEvent event) {
if(event.getState() == KeeperState.SyncConnected) {
System.out.println("连接成功");
}
cdl.countDown();
}
});
cdl.await();
}
}
对zookeeper进行创建节点
创建节点名为javaNode
添加数据eclipse create
创建为持久节点
package com.zookeeper.run;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.junit.Before;
import org.junit.Test;
public class ZookeeperAPI {
ZooKeeper zooKeeper;
@Before
public void zookeeperConn() throws IOException, InterruptedException {
CountDownLatch cdl = new CountDownLatch(1);
zooKeeper = new ZooKeeper("192.168.75.101:2181", 5000, new Watcher() {
@Override
public void process(WatchedEvent event) {
if(event.getState() == KeeperState.SyncConnected) {
System.out.println("连接成功");
}
cdl.countDown();
}
});
cdl.await();
}
/*
* 创建节点为javaNode
*
*/
@Test
public void createNode() throws KeeperException, InterruptedException {
String znode = zooKeeper.create("/javaNode", "eclipse create".getBytes(), Ids.OPEN_ACL_UNSAFE/* 权限 */, CreateMode.PERSISTENT/*持久节点*/);
System.out.println(znode);
}
}
到zookeeper客户端查询其根目录
表示已经创建成功
对zookeeper节点进行修改操作
修改节点名为javaNode
修改数据为eclipse updata
data版本为0
package com.zookeeper.run;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.junit.Before;
import org.junit.Test;
public class ZookeeperAPI {
ZooKeeper zooKeeper;
@Before
public void zookeeperConn() throws IOException, InterruptedException {
CountDownLatch cdl = new CountDownLatch(1);
zooKeeper = new ZooKeeper("192.168.75.101:2181", 5000, new Watcher() {
@Override
public void process(WatchedEvent event) {
if(event.getState() == KeeperState.SyncConnected) {
System.out.println("连接成功");
}
cdl.countDown();
}
});
cdl.await();
}
/*
* 修改节点数据
*/
@Test
public void setNode() throws KeeperException, InterruptedException {
zooKeeper.setData("/javaNode", "eclipse updata".getBytes(), 0);
}
}
查看是否修改成功
查看javaNode节点的数据
package com.zookeeper.run;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.junit.Before;
import org.junit.Test;
public class ZookeeperAPI {
ZooKeeper zooKeeper;
@Before
public void zookeeperConn() throws IOException, InterruptedException {
CountDownLatch cdl = new CountDownLatch(1);
zooKeeper = new ZooKeeper("192.168.75.101:2181", 5000, new Watcher() {
@Override
public void process(WatchedEvent event) {
if(event.getState() == KeeperState.SyncConnected) {
System.out.println("连接成功");
}
cdl.countDown();
}
});
cdl.await();
}
/*
* 查询当前节点的数据信息
*/
@Test
public void getNodeData() throws KeeperException, InterruptedException {
Stat stat = new Stat();
byte[] data = zooKeeper.getData("/javaNode", null/*监听*/, stat);
System.out.println(new String(data));
}
}
删除javaNode节点
package com.zookeeper.run;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.junit.Before;
import org.junit.Test;
public class ZookeeperAPI {
ZooKeeper zooKeeper;
@Before
public void zookeeperConn() throws IOException, InterruptedException {
CountDownLatch cdl = new CountDownLatch(1);
zooKeeper = new ZooKeeper("192.168.75.101:2181", 5000, new Watcher() {
@Override
public void process(WatchedEvent event) {
if(event.getState() == KeeperState.SyncConnected) {
System.out.println("连接成功");
}
cdl.countDown();
}
});
cdl.await();
}
/*
* 删除节点
*/
@Test
public void deleteNode() throws InterruptedException, KeeperException {
zooKeeper.delete("/javaNode", 1);
}
}
查询根目录javaNode节点是否存在
删除成功!