【发布时间】:2020-07-04 09:26:58
【问题描述】:
我正在寻找一个readers-writer lock,可以在分布式系统中的python中使用。
到目前为止,我发现:
- redlock,基于redis。不提供读写锁。
- dask 的分布式包提供lock,但同样没有读写锁。
- kazoo,与 Zookeeper 一起使用,offers a readers-writer lock。然而 Zookeeper 是一个非常严重的依赖项,因为它是用 Java 编写的,因此需要 JDK。
有没有比 kazoo / Zookeeper 更轻量级的替代品?理想情况下是经过实战考验的纯 Python 解决方案?
【问题讨论】:
-
这个模块可以帮助你github.com/veshboo/redisrwlock 吗?
-
也许......但最后一次更改是在 3 年前,我会说它没有维护。我需要向后移植到 python 2.7。
-
我觉得要求应该更精确一些。允许哪些通信机制?需要什么排队规则?如果一个节点在持有锁的情况下宕机或分布式系统被分区,恢复期望是什么?
-
@DimaTisnek 感谢您的评论。通信:我想我可以使用 IP 和端口连接到一些服务,类似于在 redlock 中完成的方式。无需加密。排队规则:理想的作家优先。恢复预期:当一个节点宕机时,它持有的任何锁都会被释放。我很好,不用为分布式系统分区的情况做好准备。你觉得这能澄清你的问题吗?
标签: python python-2.7 locking distributed