zk java数据交互 实例_zookeeper与java交互小结实现示例

对于学习java的小伙伴们来说,zookeeper一定是不陌生的,你们知道要如何在java中与zookeeper交互小结吗?这次小编就通过一个示例来带大家了解一下吧。import org.apache.zookeeper.*;

import org.apache.zookeeper.data.Stat;

import java.io.IOException;

import java.util.concurrent.CountDownLatch;

/**

* @author likexin

* @date 2019/07/01

*/

public class ZKHelper implements Watcher

{

public static ZooKeeper zk = null;

private CountDownLatch countDownLatch = new CountDownLatch(1);

public void process(WatchedEvent watchedEvent)

{

if (watchedEvent.getState() == Event.KeeperState.SyncConnected)

{

countDownLatch.countDown();

}

}

/**

* 创建连接

* @param host

*/

public void connectZookeeper(String host)

{

try

{

zk = new ZooKeeper(host, 2000, this);

countDownLatch.await();

}

catch (IOException e)

{

e.printStackTrace();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

/**

* 注册节点

* @param path 节点的路径

*/

public void regist(String path)

{

try

{

zk.create(path, null, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);

}

catch (KeeperException e)

{

e.printStackTrace();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

/**

* 修改节点的内容

* @param path 节点路径

* @param data

*/

public void updateNodeData(String path, String data)

{

try

{

zk.setData(path, data.getBytes(), -1);

}

catch (KeeperException e)

{

e.printStackTrace();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

/**

* 获取数据

* @param path 节点路径

* @return

*/

public String getData(String path)

{

Stat stat = new Stat();

String data = null;

try

{

data = new String(zk.getData(path, true, stat));

}

catch (KeeperException e)

{

e.printStackTrace();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

return data;

}

/**

* 关闭连接

*/

public void close()

{

try

{

zk.close();

}

catch (InterruptedException e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

ZKHelper zkHelper = new ZKHelper();

zkHelper.connectZookeeper("172.0.0.1");

zkHelper.regist("/PATH/DATA");

zkHelper.updateNodeData("/PATH/DATA", "Love");

String data = zkHelper.getData("/PATH/DATA");

System.out.println(data);

zkHelper.close();

}

}

以上就是本篇文章的所有内容,你应该知道java与zookeeper小结的方式了吧。还有疑问并且想了解更多java面试常见问题的小伙伴,就请关注我们的网站了解具体吧。

推荐阅读:

你可能感兴趣的:(zk,java数据交互,实例)