Eclipse中API使用:
ZooKeeper client = new ZooKeeper("192.168.230.122:2181"/*链接字符串*/, 1000, null);
1. 创建name节点,name节点的内容是zhangsan
String create = client.create("/name", "zhangsan".getBytes(), Ids.OPEN_ACL_UNSAFE/*开放,任何应用都可以操作zookeeper*/, CreateMode.PERSISTENT);
System.out.println(create);
2. 创建子节点/name/sex
String create1 = client.create("/name/sex", "man".getBytes()/*指定路径上存储的值*/, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT/*持久化节点*/);
System.out.println(create1);
3. 获取指定节点“/name/sex”的内容
byte[] data = client.getData("/name/sex"/*指定节点*/, true, null);
String db = new String(data);//将获取的数据转换为字符串
System.out.println(db);//打印字符串
4. 删除指定节点“/name1111” (这里-1可以执行成功)
client.delete("/name1111", -1);
//5. “/namewjf”的内容未22222
client.setData("/namewjf", "222222".getBytes(), client.exists("/namewjf", true).getVersion()/*znode当前版本*/);
//6. 获取指定节点 “/name”的子节点
List<String> list = client.getChildren("/name", true);
for(String str:list){
System.out.println(str);
watcher:
public class TestWatcher implements Watcher{
public static void main(String[] args) throws Exception {
ZooKeeper client = new ZooKeeper("192.168.230.122:2181"/*链接字符串*/, 1000, new TestWatcher());
byte[] bs = client.getData("/name", new TestWatcher(), null);
System.out.println(new String(bs));
Thread.sleep(Long.MAX_VALUE);
}
监听到指定的目录有变化,会触发此方法
@Override
public void process(WatchedEvent event) {
// TODO Auto-generated method stub
System.out.println(event.getPath());
}
}