请问分布式互斥锁是什么?

2017-07-18 22:46:07 +08:00
 saximi
看了一些 PYTHON 中关于如何实现锁机制的文章,但是对于什么是分布式互斥锁这个基本的概念还是不明白,不知有没有合适的说明材料,能否推荐一下,以及在 PYTHON 中如何实现的说明,万分感谢了!
3232 次点击
所在节点    Python
6 条回复
orvice
2017-07-18 22:55:05 +08:00
NoAnyLove
2017-07-18 23:49:15 +08:00
如果所谓的分布式锁是指一个 Lock 对象可以在不同进程甚至不同机器上使用,并且性能要求和规模不是很高的话,可以子类继承自 multiprocessing.managers.BaseManager,使用 TCP 通信,register 一个 threading.Lock 实例。具体看 multiprocessing 的文档。
lsmgeb89
2017-07-19 04:44:22 +08:00
有好几种不同的类型
google distributed mutual exclusion algorithms
tr0uble
2017-07-19 09:19:29 +08:00
简单的,数据库行锁,缓存 set not exist
复杂的看一下 chubby,redlock
ryd994
2017-07-19 10:06:39 +08:00
@tr0uble 行锁、set not exist 本身并不是分布式锁:锁完全由数据库服务器管理
jameshuazhou
2017-07-19 10:59:12 +08:00
首先应该了解单进程内多线程锁的机制,主要是通过 CPU 和操作系统配合来实现资源分配和保护。然后考虑多进程之间如何实现资源保护,原理上讲都是一样的,也需要个中控的系统来调配。结合 Redis 的分布式锁理解下吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/376278

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX