Java 默认的zookeeper观察者做什么?

Java 默认的zookeeper观察者做什么?,java,apache-zookeeper,Java,Apache Zookeeper,这是获取znode数据的方法 public byte[] getData(String path, boolean watch, Stat stat) throws KeeperException, InterruptedException; 路径-给定的路径 监视-是否需要监视此节点 stat-节点的stat 我对第二个参数bo

这是获取znode数据的方法

public byte[] getData(String path,
                      boolean watch,
                      Stat stat)
               throws KeeperException,
                      InterruptedException;
  • 路径-给定的路径
  • 监视-是否需要监视此节点
  • stat-节点的stat

我对第二个参数
boolean watch
很好奇,我主要把
false
放在那里。但如果我通过了
true
,动物园管理员会怎么做呢?在我看来,将调用默认的观察者。它的作用是什么?

如果watch的pass true为true,那么如果znode的数据发生更改,或者znode被删除,则会向客户端发送一个事件。客户端将调用默认的观察者(用于构造Zookeeper客户端对象)对象的处理方法。进程方法被传递给WatchedEvent对象。我们可以从事件对象获取eventType、znode路径(如果事件特定于znode)等。例如,如果事件类型类似于“NodeDataChanged”,则可能会调用Zookeeper以获取修改后的数据并重新建立手表。基本上,默认的观察者实现了“process”方法,“process”方法具有处理事件的逻辑

您可以查看以下链接:

顺便说一句,zkclient是更简单的zookeeper客户端库。你也可以试试