zookeeper的Api及监听类

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());
	}
}

猜你喜欢

转载自blog.csdn.net/gzzBlogs/article/details/94764414