问题标签 [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 投票
3 回答
572 浏览

java - ApplicationContextInitializer 的关闭等效项

如何彻底关闭ApplicationContextInitializer实现中使用的资源?

我创建了一个ApplicationContextInitializer使用 Curator 项目连接到 Zookeeper 并获取属性文件的实现。然后它创建一个Properties实例 aPropertiesPropertySource并将其添加到上下文中。

当应用程序关闭时,我希望能够调用作为我的初始化程序成员close()的实例。CuratorFramework这怎么做最好?

我也可以将CuratorFramework实例传递上下文中,以便可以将其用作 bean 吗?

0 投票
1 回答
14142 浏览

java - 如何使用 Curator 检查 Zookeeper 中是否存在路径?

我目前处于将 Zookeeper 的东西集成到我的应用程序中的早期开发阶段。我使用 Netflix 的 Curator 作为处理 Zookeeper 的 API。我得到了大部分的要点(比如添加 ZNodes 和诸如此类的东西)。

但是你怎么检查一个 ZNode 是否存在呢?看起来可行的代码是:

...client的实例在哪里com.netflix.curator.framework.CuratorFramework

但是,此调用返回一个org.apache.zookeeper.data.Stat对象。

使用此对象,我如何判断路径是否存在?

谢谢

0 投票
1 回答
1025 浏览

java - 策展人:提交事务

Apache Curator 的 CuratorFramework 类的实例允许运行变异操作inTransaction()。我目前正在使用这些调用,但不知道如何提交它们。

查看CuratorTransaction JavaDoc,它清楚地指出:

重要提示:在调用
     之前不会提交操作。CuratorTransactionFinal.commit()

但是,CuratorTransactionFinal是一个没有实现类的接口(我可以找到)。

我是否期望实现它并定义它的功能commit()
还是我错过了一些更大的概念?

0 投票
1 回答
6571 浏览

apache-zookeeper - Curator 何时以及为何抛出 ConnectionLossException?

我使用 Curator 1.2.4,ConnectionLossException当我想监视一个 znode 以了解其子节点的更改时,我会不断收到。

然后我实现了一个像这样的观察者

ConnectionLossException如果connectionTimeout设置为 10 秒,则代码每 11 秒抛出一次。似乎例外是connectionTimeout加 1 秒。为什么?

我检查了源代码,发现 GetChildrenBuilderImpl 将调用 CuratorZookeeperClient 的 blockUntilConnectedOrTimeout 方法,该方法将每 1 秒检查一次连接状态。

0 投票
1 回答
305 浏览

apache-zookeeper - zookeeper 初始发现

我想使用Apache Zookeeper(或Curator)作为复制命名服务。假设我运行 3 个 Zookeeper 服务器,并且我有十几台具有不同应用程序的计算机可以连接到这些服务器。

我应该如何将 zookeeper IP 地址传达给客户端?应该手动分发到每台机器的配置文件?

Corba 命名服务有一个 UDP 广播发现选项,在这种情况下不需要配置文件。Zookeeper中是否有类似的可能性?

0 投票
1 回答
999 浏览

apache-zookeeper - 设置 3-machine ensemble 后是否需要单独执行领导者选举?

我目前在 Zookeeper ensemble 中有 3 台机器 - 我已经设置了配置文件,并且 ensemble 中的 3 台机器可以相互通信。

什么是领导人选举?是否需要使用 LeaderLatch 来启动领导者选举,还是在正确设置配置文件后自动发生?

0 投票
1 回答
1487 浏览

transactions - ZooKeeper java client code hangs when using zkClient.multi()

What I want:

  1. I'd like to be able to use transactions with ZooKeeper
  2. I'd like for them to actually complete

Now I first tried using the Apache (nee Netflix) Curator library, but when following the examples to do a transaction like so:

and it would just get stuck there (I realize there's only one item in the transaction so a txn is unnecessary, but I'm trying to keep things simple). So I figured I'd write a more complete test scenario using the raw ZooKeeper API

It also hangs like a dead man after printing

As for the zookeeper server, it's running as a single node, so there are no other nodes it should be quarreling with. /foo never shows up in the tree - using zooinspector to look at it. If I use ZK without transactions, everything works fine. I hunted around the webz and found nothing relevant. Am I missing something obvious?

0 投票
2 回答
5346 浏览

apache-zookeeper - LeaderLatch 与 LeaderSelector

apache curator 框架中的 LeaderLatch 和 LeaderSelector 有什么区别?

http://curator.incubator.apache.org/curator-recipes/leader-election.html

0 投票
2 回答
1381 浏览

java - 策展人事务运行时构造

ZooKeeper的Apache Curator 库使用了很好的“流利”语法。例如,要修改事务中的多个节点,代码如下所示:

这很好用,而且恕我直言,生成非常易读的代码。但是,我有一种情况,我必须在事务中修改一组 ZNode。直到运行时我才知道需要修改多少节点或哪些节点。因此,我认为我不能轻松地使用流利的语法。查看文档,我可以手动管理每个 fluent 方法调用返回的代理对象,但是代码需要显式使用CuratorTransaction, TransactionSetDataBuilder,CuratorTransactionBridge等。这显然是可行的,但代码开始看起来很丑陋。

我没有看到与 Curator 进行交易的非流畅方式。有谁知道是否有一个和/或是否有一种“好”的方式在运行时构建事务?具体来说,给定Map<String, String>从 ZNode 路径到需要在该 ZNode 中结束的数据的映射,您将如何以事务方式设置所有节点?

0 投票
2 回答
3516 浏览

java - ZooKeeper 摘要身份验证 - 安全替代方案?

我想让服务使用一些凭据向 ZooKeeper 进行身份验证,以便他们可以访问配置信息。

摘要式身份验证对我的要求不够安全:“身份验证是通过以明文形式发送用户名:密码来完成的”。

是否已经有一个简单而安全的替代方案可用?我可以使用 Curator,并且该项目是基于 Java 的。

如果不是,创建我自己的身份验证方法将涉及哪些步骤?实现AuthenticationProviderzookeeper.authProvider.1在服务器上设置以使用此提供程序,然后将任何身份验证令牌(可能是用户名/密码哈希)CuratorFrameWorkFactory作为参数传递给构建器byte[]