【问题标题】:How to ensure exclusive access to a Zookeeper node如何确保对 Zookeeper 节点的独占访问
【发布时间】:2015-06-17 22:32:45
【问题描述】:

我的目标是允许客户端锁定现有的 Zookeeper 节点,以便只有一个客户端执行节点数据所描述的工作。

我正在考虑使用 Curator 的 InterProcessMutex 来促进同步。我的问题是传递给InterProcessMutex 构造函数的path 参数是否应该是我希望锁定的节点的路径,还是应该是表示与感兴趣的节点相对应的锁的不同路径? Curator 文档不清楚 path 指定的节点中的数据是否被实现使用。

有没有更好的方法来实现对 Zookeeper 节点的独占访问?

【问题讨论】:

    标签: apache-zookeeper apache-curator


    【解决方案1】:

    您输入的路径是您希望锁定的路径,而不是锁定的路径。策展人为引擎盖下的锁创建了一条路径。

    【讨论】:

    • 如果这是真的,那么 InterProcessMutex 类的文档缺少足够的细节,我无法在不查看源代码的情况下使用该类。我需要知道InterProcessMutex 实现将在哪里写入锁定状态信息。如果没有进一步的信息,我怎么能确定 (1) 我的应用程序代码不会干扰互斥锁的正确运行以及 (2) 我的应用程序代码不会遇到由互斥锁实现创建的节点数据或子节点?
    • 关于文档,我无话可说。关于实现 - 我没有看到实现,但是在浏览 ZK 时,我看到在锁定节点下是一个名为 locks 的节点 - 我同意如果你尝试创建这样一个可能会导致问题的节点。但是当它被修改时,我的听众没有被触发,因此我认为策展人会处理它。希望这会有所帮助...
    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 2018-02-17
    相关资源
    最近更新 更多