【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
ZooKeeper还为客户端提供了Java API编程接口的方式。API接口主要是ZooKeeper类中的方法,下面列举几个常用的客户端操作的Java代码示例。
1、create
创建ZooKeeper路径节点,参数需提供路径名称和路径关联数据。对应create命令。
示例代码如下:
ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this); zk.create("/test","Hello".getBytes(), null, CreateMode.PERSISTENT); |
2、删除
删除路径,对应delete命令。
ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this); zk.delete("/test", -1); |
3、getData
获取路径关联数据。对应get命令。
ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this); String data = zk.getData("/test", false,null); |
4、setData
设置节点关联数据。对应set命令。
ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this); zk.setData ("/test", "Welcome".getBytes(), -1); |
5、getChildren
获取子节点路径列表。对应ls命令。
ZooKeeper zk= new ZooKeeper("127.0.0.1",SESSION_TIME,this); List<String> list = zk.getChildren("/", false); |
6、Watcher
设置观察者:
只要在实例化ZooKeeper类时指定Watcher实现即可实现ZooKeeper事件,Watcher实现只需要实现process接口方法即可。
示例代码:
zk = new ZooKeeper(address, sessionTimeout, new Watcher() { // 监控所有被触发的事件 public void process(WatchedEvent event) { System.out.println("触发事件:" + event.getType()); } }); |
这段代码监听ZooKeeper所有变化,事件处理代码是打印event类型。
WatchedEvent的属性:
1)连接状态
KeeperState keeperState = event.getState();
2)事件类型
EventType eventType = event.getType();
3)znode的路径名称
String path = event.getPath();
EventType有几下几种事件类型:
EventType.NodeCreated : 节点创建事件类型
EventType.NodeDeleted : 节点被删除
EventType.NodeDataChanged : 节点被修改
EventType.None : 客户端与服务器成功建立会话
EventType.NodeChildrenChanged : 子节点列表发生变更
来源:oschina
链接:https://my.oschina.net/u/778683/blog/3102974