问题标签 [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.
java - ApplicationContextInitializer 的关闭等效项
如何彻底关闭ApplicationContextInitializer
实现中使用的资源?
我创建了一个ApplicationContextInitializer
使用 Curator 项目连接到 Zookeeper 并获取属性文件的实现。然后它创建一个Properties
实例 aPropertiesPropertySource
并将其添加到上下文中。
当应用程序关闭时,我希望能够调用作为我的初始化程序成员close()
的实例。CuratorFramework
这怎么做最好?
我也可以将CuratorFramework
实例传递到上下文中,以便可以将其用作 bean 吗?
java - 如何使用 Curator 检查 Zookeeper 中是否存在路径?
我目前处于将 Zookeeper 的东西集成到我的应用程序中的早期开发阶段。我使用 Netflix 的 Curator 作为处理 Zookeeper 的 API。我得到了大部分的要点(比如添加 ZNodes 和诸如此类的东西)。
但是你怎么检查一个 ZNode 是否存在呢?看起来可行的代码是:
...client
的实例在哪里com.netflix.curator.framework.CuratorFramework
但是,此调用返回一个org.apache.zookeeper.data.Stat
对象。
使用此对象,我如何判断路径是否存在?
谢谢
java - 策展人:提交事务
Apache Curator 的 CuratorFramework 类的实例允许运行变异操作inTransaction()
。我目前正在使用这些调用,但不知道如何提交它们。
查看CuratorTransaction JavaDoc,它清楚地指出:
重要提示:在调用
之前不会提交操作。CuratorTransactionFinal.commit()
但是,CuratorTransactionFinal
是一个没有实现类的接口(我可以找到)。
我是否期望实现它并定义它的功能commit()
?
还是我错过了一些更大的概念?
apache-zookeeper - Curator 何时以及为何抛出 ConnectionLossException?
我使用 Curator 1.2.4,ConnectionLossException
当我想监视一个 znode 以了解其子节点的更改时,我会不断收到。
然后我实现了一个像这样的观察者
ConnectionLossException
如果connectionTimeout
设置为 10 秒,则代码每 11 秒抛出一次。似乎例外是connectionTimeout
加 1 秒。为什么?
我检查了源代码,发现 GetChildrenBuilderImpl 将调用 CuratorZookeeperClient 的 blockUntilConnectedOrTimeout 方法,该方法将每 1 秒检查一次连接状态。
apache-zookeeper - zookeeper 初始发现
我想使用Apache Zookeeper(或Curator)作为复制命名服务。假设我运行 3 个 Zookeeper 服务器,并且我有十几台具有不同应用程序的计算机可以连接到这些服务器。
我应该如何将 zookeeper IP 地址传达给客户端?应该手动分发到每台机器的配置文件?
Corba 命名服务有一个 UDP 广播发现选项,在这种情况下不需要配置文件。Zookeeper中是否有类似的可能性?
apache-zookeeper - 设置 3-machine ensemble 后是否需要单独执行领导者选举?
我目前在 Zookeeper ensemble 中有 3 台机器 - 我已经设置了配置文件,并且 ensemble 中的 3 台机器可以相互通信。
什么是领导人选举?是否需要使用 LeaderLatch 来启动领导者选举,还是在正确设置配置文件后自动发生?
transactions - ZooKeeper java client code hangs when using zkClient.multi()
What I want:
- I'd like to be able to use transactions with ZooKeeper
- 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?
apache-zookeeper - LeaderLatch 与 LeaderSelector
apache curator 框架中的 LeaderLatch 和 LeaderSelector 有什么区别?
http://curator.incubator.apache.org/curator-recipes/leader-election.html
java - 策展人事务运行时构造
ZooKeeper的Apache Curator 库使用了很好的“流利”语法。例如,要修改事务中的多个节点,代码如下所示:
这很好用,而且恕我直言,生成非常易读的代码。但是,我有一种情况,我必须在事务中修改一组 ZNode。直到运行时我才知道需要修改多少节点或哪些节点。因此,我认为我不能轻松地使用流利的语法。查看文档,我可以手动管理每个 fluent 方法调用返回的代理对象,但是代码需要显式使用CuratorTransaction
, TransactionSetDataBuilder
,CuratorTransactionBridge
等。这显然是可行的,但代码开始看起来很丑陋。
我没有看到与 Curator 进行交易的非流畅方式。有谁知道是否有一个和/或是否有一种“好”的方式在运行时构建事务?具体来说,给定Map<String, String>
从 ZNode 路径到需要在该 ZNode 中结束的数据的映射,您将如何以事务方式设置所有节点?
java - ZooKeeper 摘要身份验证 - 安全替代方案?
我想让服务使用一些凭据向 ZooKeeper 进行身份验证,以便他们可以访问配置信息。
摘要式身份验证对我的要求不够安全:“身份验证是通过以明文形式发送用户名:密码来完成的”。
是否已经有一个简单而安全的替代方案可用?我可以使用 Curator,并且该项目是基于 Java 的。
如果不是,创建我自己的身份验证方法将涉及哪些步骤?实现AuthenticationProvider
,zookeeper.authProvider.1
在服务器上设置以使用此提供程序,然后将任何身份验证令牌(可能是用户名/密码哈希)CuratorFrameWorkFactory
作为参数传递给构建器byte[]
?