一、导入jar包
在Eclipse导入slf4j.api-1.6.1.jar和zookeeper-3.4.10.jar。
步骤:右键此项目 > Build Path > Configure Build Path > 在 Java Build Path 的 Libraries 栏下点击 Add External JARs > 导入jar包 > 点击 Apply and Close 即可
二、创建java文件
创建ZooKeeperEx1.java文件,内容如下
import java.io.IOException;
import java.util.List;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ZooKeeperEx1{
private static final int SESSION_TIMEOUT = 30000;
public static final Logger LOGGER =
LoggerFactory.getLogger("ZooKeeperEx1Log");
private static Watcher watcher = new Watcher() {
public void process(WatchedEvent event) {
System.out.println("process : " + event.getType());
LOGGER.info("process : " + event.getType());
}
};
public static void main(String[] args) throws
IOException,KeeperException,InterruptedException {
// 连接ZooKeeper
ZooKeeper zkp = new ZooKeeper("master:2181,slave1:2181,slave2:2181",
SESSION_TIMEOUT,watcher);
// 创建ZNode
zkp.create("/test", "znodedata".getBytes(),
Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
zkp.create("/test/seq", "childdata".getBytes(),
Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT_SEQUENTIAL);
// 判断ZNode是否存在
Stat stat = zkp.exists("/test", true);
if (zkp.exists("/test", false) != null) {
System.out.println("/test exists now.");
}
// 更新ZNode数据内容
zkp.setData("/test", "newdata".getBytes(), stat.getVersion());
// 读取ZNode数据
String data = new String(zkp.getData("/test", true, stat));
System.out.println(data);
// 获取子节点
List<String> children=zkp.getChildren("/test", true );
for(String child :children) {
System.out.println(child);
}
// 删除ZNode子节点
zkp.delete("/test/"+children.get(0), -1);
// 删除ZNode节点
zkp.delete("/test", -1);
zkp.close();
}
}
三、导出jar包
步骤:右键此项目 > Export > java > Runnable jar file>
三、运行jar文件
#java -jar [文件路径]