问题标签 [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 回答
1491 浏览

apache-zookeeper - zookeeper curator - 未使用 PathCacheListener 接收子节点创建事件通知

我有一个工人类,它将 znode 注册为 /workers/worker-1,我想从 /assign/worker-1/task1 接收 master 为这个工人分配的任务。我已经注册了一个主监听器,并且还在分配路径 (/assign/worker-1) 上启动了一个 PathChildrenCache,但由于某种原因,我没有收到有关工作人员的任何事件。这是代码的样子

}

因此,在此之后,如果我在 /assign/worker-1 下创建一个节点,我将不会收到有关工作人员的任何通知。任何想法我可能做错了什么。

谢谢

0 投票
1 回答
1397 浏览

java - 通过 Java API 获取 ZooKeeper 服务器版本

我发现一些 Apache Curator 配方不适用于旧版本的 ZooKeeper。这不是问题,只是我公司的开发人员一直在尝试使用我编写的一些代码,但由于他们运行的是本地计算机的旧版本,所以它没有任何错误或日志消息就失败了。因此,我想检索我连接到的 ZooKeeper 服务器的版本,如果版本太旧,则会出现有用的错误消息。但是,我找不到使用 Curator 或 ZooKeeper API 获取服务器版本号的任何方法。有人知道该怎么做吗?

0 投票
0 回答
556 浏览

apache - Apache Curator 创建ParentsIfNeeded inTransaction

TransactionCreateBuilder 似乎不支持“creatingParentsIfNeeded”。这是典型的 CreateBuilder 支持的操作。理想情况下,我想做:

curatorTransaction.create().creatingParentsIfNeeded().forPath(key, value).and()..

这可能吗?还是对 Zookeeper 的限制(不支持原子子路径操作)

谢谢!

0 投票
0 回答
861 浏览

java - 如何使用 jmockit 模拟 CuratorFramework 的“创建”方法?

我正在使用 Netflix Curator 库,因为我正在使用 Zookeeper。现在我正在尝试为我的代码库编写 junit 测试,所以我需要模拟 Curator 库的一些代码。我正在使用 jmockit 库进行模拟。

这是我下面的代码,它在 zookeeper 中创建了一个简单的 znode。

现在我正在尝试模拟使用create方法,以便它不会在 Zookeeper 中创建实际的 znode。CuratorFrameworkjmockit

但无法理解如何正确模拟它?

这是CuratorFramework 代码及其实现

有什么建议会有很大帮助吗?

0 投票
0 回答
2878 浏览

java - 连接 Zookeeper 客户端时出错

当我尝试通过增加 Zookeeper 上的请求数量来进行一些繁重的 junit 测试时,我收到以下错误。似乎连接被重置。任何人都有一个想法来解决这个问题。我也在 Zookeeper 上使用 Curator 界面。这发生在每次执行测试套件期间,如果我删除了几个测试用例,它可以正常工作。任何人都可以就此提出建议。

0 投票
1 回答
2124 浏览

apache-zookeeper - 在 Zookeeper 中可靠地监视一个节点

是否有任何简单的方法可以始终确保我在 Zookeeper 中拥有节点的最新状态(数据和/或子节点),只使用手表而不是轮询,考虑到该节点在我启动时可能不存在或可能被删除和重新创建?我尝试这样做,但结果证明这样做已经足够复杂了(就设置所需的多个手表而言,并避免在错误时间创建或删除节点时可能导致数据丢失的竞争条件)我放弃了,转而投票。(落后几秒钟对我的应用程序来说没有问题,但错过更改是不好的,错过所有未来的更改是非常糟糕的。)

我在 Java 中使用 Curator,它有一些方法可以让一些事情变得更容易,但这似乎不是其中之一。

0 投票
1 回答
574 浏览

redis - Zookeeper 的 Curator 框架 - 进程间互斥锁每次获取锁需要 50 毫秒

我正在使用 Curator 框架进程间互斥体来创建分布式锁以保留一些资源。但是,我可以看到 zookeeper 每次获取锁需要 50-100 毫秒,释放锁需要 20-40 毫秒。我的应用程序写入量很大,必须在 500 毫秒内响应 10-50 次请求/秒,而我无法在仅获取和释放锁定时花费 70-140 毫秒。1)有什么办法可以改善吗?我的 zookeeper 服务器和客户端在同一台主机上。我已经尝试按照管理指南中的说明设置 Zookeeper 服务器。2)我是否应该为此使用其他一些框架/技术。我想知道 Redis SETNX 是否会是更好的解决方案或使用 Chubby。

0 投票
1 回答
2298 浏览

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()方法返回时,领导权会被放弃。我想避免它,我现在只是通过引入等待循环来阻止返回。

我的问题是:

  1. 这是实施领导的正确方式吗?
  2. 等待循环(如下面的代码示例所示)是正确的阻塞方式吗?

    /li>
0 投票
2 回答
1838 浏览

apache-zookeeper - 使用 apache zookeeper+curator 进行缓慢的领导选举

我正在使用 LeaderLatch 进行领导者选举。在本地安装 ZooKeeper 后,当只有一个实例时,我有大约 30 秒的时间来选举领导者,而当领导者出现故障时(当我终止进程时),几乎同时选举新的领导者。这应该像这样工作吗?我可以加快速度吗?

我使用以下代码:

0 投票
1 回答
1396 浏览

apache-zookeeper - curator如何处理setData()的返回值

如果我想更新 Zookeeper 中的数据

client.setData().forPath(“/demo/path”, “其他数据”.getBytes())

如果它会成功吗

  1. ZooKeeper 很好
  2. 客户很好
  3. 路径存在
  4. 你有权利

因为我看过一篇文章,它说只有2N+1台服务器中的N台服务器认为更新操作成功,那么它是成功的,如果少于N台服务器认为OK,它会返回FAIL,我怎么能处理这些情况

http://blog.cloudera.com/blog/2009/12/observers-making-zookeeper-scale-even-further/