问题标签 [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.
apache-zookeeper - zookeeper curator - 未使用 PathCacheListener 接收子节点创建事件通知
我有一个工人类,它将 znode 注册为 /workers/worker-1,我想从 /assign/worker-1/task1 接收 master 为这个工人分配的任务。我已经注册了一个主监听器,并且还在分配路径 (/assign/worker-1) 上启动了一个 PathChildrenCache,但由于某种原因,我没有收到有关工作人员的任何事件。这是代码的样子
}
因此,在此之后,如果我在 /assign/worker-1 下创建一个节点,我将不会收到有关工作人员的任何通知。任何想法我可能做错了什么。
谢谢
java - 通过 Java API 获取 ZooKeeper 服务器版本
我发现一些 Apache Curator 配方不适用于旧版本的 ZooKeeper。这不是问题,只是我公司的开发人员一直在尝试使用我编写的一些代码,但由于他们运行的是本地计算机的旧版本,所以它没有任何错误或日志消息就失败了。因此,我想检索我连接到的 ZooKeeper 服务器的版本,如果版本太旧,则会出现有用的错误消息。但是,我找不到使用 Curator 或 ZooKeeper API 获取服务器版本号的任何方法。有人知道该怎么做吗?
apache - Apache Curator 创建ParentsIfNeeded inTransaction
TransactionCreateBuilder 似乎不支持“creatingParentsIfNeeded”。这是典型的 CreateBuilder 支持的操作。理想情况下,我想做:
curatorTransaction.create().creatingParentsIfNeeded().forPath(key, value).and()..
这可能吗?还是对 Zookeeper 的限制(不支持原子子路径操作)
谢谢!
java - 如何使用 jmockit 模拟 CuratorFramework 的“创建”方法?
我正在使用 Netflix Curator 库,因为我正在使用 Zookeeper。现在我正在尝试为我的代码库编写 junit 测试,所以我需要模拟 Curator 库的一些代码。我正在使用 jmockit 库进行模拟。
这是我下面的代码,它在 zookeeper 中创建了一个简单的 znode。
现在我正在尝试模拟使用create
方法,以便它不会在 Zookeeper 中创建实际的 znode。CuratorFramework
jmockit
但无法理解如何正确模拟它?
有什么建议会有很大帮助吗?
java - 连接 Zookeeper 客户端时出错
当我尝试通过增加 Zookeeper 上的请求数量来进行一些繁重的 junit 测试时,我收到以下错误。似乎连接被重置。任何人都有一个想法来解决这个问题。我也在 Zookeeper 上使用 Curator 界面。这发生在每次执行测试套件期间,如果我删除了几个测试用例,它可以正常工作。任何人都可以就此提出建议。
apache-zookeeper - 在 Zookeeper 中可靠地监视一个节点
是否有任何简单的方法可以始终确保我在 Zookeeper 中拥有节点的最新状态(数据和/或子节点),只使用手表而不是轮询,考虑到该节点在我启动时可能不存在或可能被删除和重新创建?我尝试这样做,但结果证明这样做已经足够复杂了(就设置所需的多个手表而言,并避免在错误时间创建或删除节点时可能导致数据丢失的竞争条件)我放弃了,转而投票。(落后几秒钟对我的应用程序来说没有问题,但错过更改是不好的,错过所有未来的更改是非常糟糕的。)
我在 Java 中使用 Curator,它有一些方法可以让一些事情变得更容易,但这似乎不是其中之一。
redis - Zookeeper 的 Curator 框架 - 进程间互斥锁每次获取锁需要 50 毫秒
我正在使用 Curator 框架进程间互斥体来创建分布式锁以保留一些资源。但是,我可以看到 zookeeper 每次获取锁需要 50-100 毫秒,释放锁需要 20-40 毫秒。我的应用程序写入量很大,必须在 500 毫秒内响应 10-50 次请求/秒,而我无法在仅获取和释放锁定时花费 70-140 毫秒。1)有什么办法可以改善吗?我的 zookeeper 服务器和客户端在同一台主机上。我已经尝试按照管理指南中的说明设置 Zookeeper 服务器。2)我是否应该为此使用其他一些框架/技术。我想知道 Redis SETNX 是否会是更好的解决方案或使用 Chubby。
apache-zookeeper - Apache Curator LeaderSelector:如何通过不退出 takeLeadership() 方法来避免放弃领导?
I'm trying to implement a simple leader election based system where my main business logic of the application runs on the elected leader node. 作为获取领导力的一部分,主要业务逻辑启动各种其他服务。我正在使用 Apache Curator LeaderSelector 配方来实现领导者选择过程。
在我的系统中,被选为领导者的节点保持领导地位,直到失败迫使另一个领导者被选中。换句话说,一旦我获得了领导权,我就不想放弃它。
根据 Curator LeaderSelection 文档,当takeLeadership()
方法返回时,领导权会被放弃。我想避免它,我现在只是通过引入等待循环来阻止返回。
我的问题是:
- 这是实施领导的正确方式吗?
等待循环(如下面的代码示例所示)是正确的阻塞方式吗?
/li>
apache-zookeeper - 使用 apache zookeeper+curator 进行缓慢的领导选举
我正在使用 LeaderLatch 进行领导者选举。在本地安装 ZooKeeper 后,当只有一个实例时,我有大约 30 秒的时间来选举领导者,而当领导者出现故障时(当我终止进程时),几乎同时选举新的领导者。这应该像这样工作吗?我可以加快速度吗?
我使用以下代码:
apache-zookeeper - curator如何处理setData()的返回值
如果我想更新 Zookeeper 中的数据
client.setData().forPath(“/demo/path”, “其他数据”.getBytes())
如果它会成功吗
- ZooKeeper 很好
- 客户很好
- 路径存在
- 你有权利
因为我看过一篇文章,它说只有2N+1台服务器中的N台服务器认为更新操作成功,那么它是成功的,如果少于N台服务器认为OK,它会返回FAIL,我怎么能处理这些情况
http://blog.cloudera.com/blog/2009/12/observers-making-zookeeper-scale-even-further/