1

我对 Zookeeper 很陌生,所以我正在尝试使用 Curator 食谱来看看我是否可以开箱即用地提出我非常简单的问题。

我正在尝试使用 Curator GroupMember 类/食谱来在节点之间分配工作负载。GroupMember start() 方法 javadoc 说“开始缓存所有成员” - 一旦收到所有成员,我如何请求或获取通知?

一种后续行动:我注意到有时我的 groupMember.setData() 调用会抛出“尚未处理初始创建。调用 waitForInitialCreate() 以确保”这是在 PersistentNode 上,甚至没有被 MemberGroup 公开。

看起来我真的错过了关于 MemberGroup API 的一些东西:(

4

1 回答 1

0

Curator 中的缓存使用“最终一致性”的概念 - 这意味着您获得的值将只是当时缓存中发生的任何内容。它非常擅长保持最新状态;它只是不能保证你得到的将是最新的值。

在这种情况下,“开始缓存所有成员”只是意味着在调用该start方法之前没有发生缓存;并且在调用缓存之后会发生。这并不意味着您必须等待缓存完成才能使用它或类似的东西。

于 2019-07-18T13:12:30.913 回答