问题标签 [apache-curator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
827 浏览

apache-zookeeper - Zookeeper 的策展人框架对象

我是否需要为我想在我的项目中实现的每个接收者创建单独的 Curator 框架实例?例如,我是否需要为 LeaderElection 创建单独的 CuratorFramework 实例并为分布式锁/队列创建单独的 CuratorFramework 实例?

问候桑达尔

0 投票
2 回答
4854 浏览

java - 什么时候应该调用 CuratorFramework 的方法启动和关闭?

根据文档

CuratorFramework 实例是完全线程安全的。您应该在应用程序中为每个 ZooKeeper 集群共享一个 CuratorFramework。

它还指出,应该在执行任何其他操作之前调用方法start 。这个方法应该在每次操作之前调用还是在初始化之后调用一次就足够了?

0 投票
2 回答
8331 浏览

java - 如何使用 curator 在 ZooKeeper 的后代节点上监视事件?

我正在做一个项目,我需要在一个节点上维护一个手表,以及该节点的子节点。我曾尝试使用 PathCache,但我不确定如何在这里观看儿童的孩子?

这里我的根节点是 -"/my/test"我正在使用下面的代码监视该节点。我想要做的是,保持对"/my/test"znode 的关注。所以假设如果这些节点被添加到我的根节点 -

然后我应该得到通知(直到这部分我能够使它工作)但是如果有任何新节点被添加、更新或删除到"/my/test/test1""/my/test/test2"然后"/my/test/test3"我也应该得到通知,这是我无法理解的部分让它起作用。

每当我向 , 等添加任何新节点时,"/my/test"都会"/my/test/test1"使用以下代码触发手表。但是,如果我向or添加任何新节点,则不会触发任何手表,我也不确定如何为此添加代码?任何想法如何做到这一点?"/my/test/test2""/my/test/test3""/my/test/test1""/my/test/test2"

可能是如果过去有人这样做过..所以任何例子都会对我有很大帮助..

下面是我的代码,它适用于"/my/test"儿童,但不适用于"/my/test/test1"等。

下面是我的 addListener 方法 -

任何人都可以为我的用例提供一个简单的例子吗?我正在使用最近发布的 Curator 2.4.0。

0 投票
1 回答
592 浏览

java - 如何制作可以接受参数的线程安全单例类?

我正在尝试创建一个类,ThreadSafe Singleton但不知何故我无法理解如何创建ThreadSafe Singleton可以接受参数的类。

下面是我从这个 github链接中使用的类,我目前正在使用它来连接到 Zookeeper -

这就是我调用上述课程的方式 -

现在我需要的是,如果我从程序中的任何类调用以下这两个方法,我应该能够获得它的一个实例。所以我想把上面的类作为一个线程安全的单例,这样我就可以在我的所有java程序中访问这两种方法。

我如何将上述类设为 ThreadSafe 单例,然后在我的所有类中使用isLeader()getClient()查看谁是领导者并获取客户端实例。

我只需要在初始化时这样做,一旦完成,我应该能够在我的所有类中使用isLeader()和使用getClient()。这可能吗?

这更多的是 Java 问题而不是 Zookeeper 的东西..

0 投票
1 回答
206 浏览

java - Can I use static method from a different class?

Below is my CuratorClient class which is connecting to Zookeeper and starting the leader election process as well.

When my service gets started up, in the static block I am making a connection to Zookeeper using CuratorClient and starting the leader election process as well.

Now I have some other class as well which likes to use the getChildren method of CuratorClient so in this class, I can directly use like this CuratorClient.getChildren("/my/example"); correct?

In general, this is not a curator question or zookeeper question. It's basically a design question and I am trying to understand whether the way I am doing it will have any problem or not? And I am assuming CuratorFramework will be thread safe as well?

0 投票
2 回答
4585 浏览

java - Apache Curator 分布式锁

我知道 Apache Curator 可以执行构建在 zookeeper 之上的分布式锁功能。根据 Apache Curator 官方网站上发布的文档,它看起来非常易于使用。例如:

但是“InterProcessSemaphoreMutex”的第二个参数“path”是什么意思呢?这意味着基于 API 的“锁的路径”,但它到底是什么?谁能给我一个例子?

如果我有数百万个锁,我是否必须创建数百万个“通往锁的路径”?zookeeper 集群的最大锁数(znodes)是否有限制?或者我们可以在进程释放它时移除这个锁吗?

0 投票
1 回答
801 浏览

apache-zookeeper - Apache Curator 锁定路径

我们知道如何使用 Apache Curator 创建分布式共享锁:

对于上面的代码,我有两个问题:

1:第二个参数是lock(znode)的路径,那么这个lock znode是这段代码自动创建的,还是我们之前需要手动创建呢?

2:如果是“InterProcessMutex”创建的,如果这个锁znode已经被其他实例创建了怎么办?它会抛出任何“znode exsting”异常吗?如果它没有抛出任何异常,发生了什么,创建一个重复的znode?

0 投票
1 回答
3233 浏览

apache-zookeeper - 如何使用 Zookeeper 和 curator 进行配置管理?

我一直在阅读有关使用zookeeper 进行配置管理的信息

我知道有 Apache Curator 可以轻松与 zookeeper 交互。

我有一些客户端连接到一组资源。他们必须以同样的方式使用这些资源。资源之间的分片和主选举之类的东西。

我想使用zookeeper,这样如果客户端在给定时间注意到其中一个资源已关闭,它可以更改配置,其他客户端可以立即开始使用新配置。

因此,一个客户端将配置写入 zookeeper 中 znode 的路径中,而其他客户端正在监视该路径。

如何在 curator 中设置数据:

如何在 curator 中观看路径:

现在,当路径的值发生变化并且手表被触发时,我必须获取路径的新值。我怎么做?

这总是在 process() 内返回 null

其他问题:正如文档中所说,在我获得新值后,我是否必须再次设置观察者?

观察者来源:

0 投票
0 回答
501 浏览

java - Zookeeper 支持的共享地图(小型 KeyValue 存储)

我有一堆Hadoop MapReduce应用程序(工作)需要共享一些“活”的小型键值存储。实际上,它是关于在作业过程中根据一些字符串标准生成的字符串 ID。

所以它看起来像是共享Map<String,String>的,可以修改并且值在MapReduce作业组件之间共享(在我的例子中是映射器,但没关系)。

我认为可见的方法是Apache ZooKeeper. 我的Hadoop集群上已经有此服务可用。在这种情况下,我需要的是可靠的ZooKeeper供电KeyValue存储。目前我将其视为已声明的应用程序之一,但我没有看到好的实现。有什么建议吗?我看到在这种情况下我需要临时节点(因为 MapReduce 作业的生命周期有限)。

我目前发现的最佳选择是Curator包含SharedValue看起来像我需要的类的框架。但我没有看到任何在食谱或示例中使用它的示例。有什么例子吗?

对于这个问题,还有什么其他好的实现方法或现成的解决方案吗?先感谢您。

0 投票
1 回答
194 浏览

java - 我应该将我的馆长(动物园管理员库)调用包装在 Java 中的同步函数中,还是会有点矫枉过正

我正在使用动物园管理员的馆长库来跨机器进行进程间锁定。只有一个函数可以创建锁、执行工作然后释放锁。我应该在这个函数中使用 synchronized 关键字来确保同一台机器上的线程串行调用这个函数,从而最大限度地减少对 zookeeper 的调用,还是看起来有点矫枉过正?