我正在做一个项目,在这个项目中,我需要在一个节点上维护一个表,并且该节点也包括子节点。我尝试过使用PathCache,但我不知道如何在这里监视孩子们的孩子?
这里我的根节点是-“/my/test”
,我正在使用下面的代码监视该节点。我想做的是,让手表保持在“/my/test”
znode上。假设这些节点被添加到我的根节点-
"/my/test/test1"
"/my/test/test2"
"/my/test/test3"
然后我应该得到通知(直到这一部分我能够使它工作),但如果任何新节点被添加、更新或删除到“/my/test/test1”
,“/my/test/test2”
和“/my/test/test3”
,那么我也应该得到通知,而这是我无法理解如何使它工作的部分。
每当我添加任何新节点到"/my/test"
,如"/my/test/test1"
,"/my/test/test2"
,"/my/test/test3"
,然后使用下面的代码触发手表。但是如果我添加任何新节点到"/my/test/test1"
或"/my/test/test2"
,那么没有手表会被触发,我也不知道如何添加代码?有什么想法吗?
如果过去有人做过这件事。。所以任何例子都会对我有很大帮助。。
下面是我的代码,它适用于"/my/test"
的子代,但不适用于"/my/test/test1"
等的子代。
private static final String PATH = "/my/test";
public static void main(String[] args) {
CuratorFramework client = null;
PathChildrenCache cache = null;
try {
client = CuratorClient.createSimple("localhost:2181");
client.start();
// in this example we will cache data. Notice that this is optional.
cache = new PathChildrenCache(client, PATH, true);
cache.start();
addListener(cache);
for(;;) {
try {
Thread.sleep(50000);
} catch(InterruptedException e) {
}
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
下面是我的addListener方法-
private static void addListener(PathChildrenCache cache) {
PathChildrenCacheListener listener = new PathChildrenCacheListener() {
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
switch (event.getType()) {
case CHILD_ADDED: {
System.out.println("Node added: " + ZKPaths.getNodeFromPath(event.getData().getPath()));
break;
}
case CHILD_UPDATED: {
System.out.println("Node changed: " + ZKPaths.getNodeFromPath(event.getData().getPath()));
break;
}
case CHILD_REMOVED: {
System.out.println("Node removed: " + ZKPaths.getNodeFromPath(event.getData().getPath()));
break;
}
default:
break;
}
}
};
cache.getListenable().addListener(listener);
}
有人能为我的用例提供一个简单的例子吗?我正在使用最近发布的Curator 2.4.0。
改用TreeCache。它完成了PathCache plus能够处理子节点的所有功能。
我最近开始为Zookeeper使用Python。我正在使用动物园管理员的库。我需要监视我的根节点- 可能会添加到我上面的根节点的其他几个节点如下- 现在我需要检查添加到根节点中的子节点是否为。如果节点被添加到中,那么我将只监视节点,如果任何新的子节点被添加到节点中,那么我也需要监视该节点。 比如说,的子代是,所以现在我需要监视,然后如果在这个节点上添加了任何新节点,比如和,那么我需要打印节点的子节
我在docker容器中运行了一个简单的Node.js HTTP服务器。其中一个基本结构文件夹使用from镜像主机和容器目录。 在节点服务器中,我使用NPM包,设置了一个监视程序来跟踪卷目录中的更改(尽管我已经尝试了多个其他监视程序,结果相同)。 当我在本地运行节点服务器时,观察者会正确地拾取对所监视目录的更改。在这种情况下,将这些报告为或,这对应于我运行的脚手架脚本,用于在目录中添加或删除新文件夹
我最近开始使用。我正在使用库for ZooManager。 我有一个非常简单的使用kazoo for Zookeeper的用例。我有一个根节点-。现在我需要监视根节点,如果添加到根节点的新节点是,那么我只监视节点。除了节点之外,我不想监视任何其他节点。然后,如果有任何新的子节点被添加到节点,那么我也会监视它们。 假设下面的孩子加起来- 然后我也会监视节点。 在动物园管理员中使用Kazoo可以做到这
本文向大家介绍Zookeeper Watcher(事件监听器)?相关面试题,主要包含被问及Zookeeper Watcher(事件监听器)?时的应答技巧和注意事项,需要的朋友参考一下 Watcher(事件监听器),是 ZooKeeper 中的一个很重要的特性。ZooKeeper 允许用户在指定节点上注册一些 Watcher,并且在一些特定事件触发的时候,ZooKeeper 服务端会将事件通知到感兴
本文向大家介绍Zookeeper 如何选举master 主节点?相关面试题,主要包含被问及Zookeeper 如何选举master 主节点?时的应答技巧和注意事项,需要的朋友参考一下 还记得上面我们的所说的临时节点吗?因为 的强一致性,能够很好地在保证 在高并发的情况下保证节点创建的全局唯一性 (即无法重复创建同样的节点)。 利用这个特性,我们可以 让多个客户端创建一个指定的节点 ,创建成功的就是
我正在尝试用CuratorFramework创建一个基于动物园管理员的应用程序。该应用程序必须能够在更多的节点上以仲裁的方式运行。应用程序的每个实例都嵌入了动物园管理员服务器和客户端的实例。节点在仲裁中被成功地删除。每个节点都向 /workers/active/node1写入一个EPHEMERAL节点(“活动”是由领导者创建的PERSISTENT znode)。因为当客户端连接到动物园管理员服务器