Zookeeper系列(二):Java API开发

喜夏-厌秋 提交于 2019-12-10 20:45:25

【推荐】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 : 子节点列表发生变更

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!