1
orvice 2017-07-18 22:55:05 +08:00
可以用 consul 实现
https://github.com/KurToMe/python-consul-lock |
2
NoAnyLove 2017-07-18 23:49:15 +08:00
如果所谓的分布式锁是指一个 Lock 对象可以在不同进程甚至不同机器上使用,并且性能要求和规模不是很高的话,可以子类继承自 multiprocessing.managers.BaseManager,使用 TCP 通信,register 一个 threading.Lock 实例。具体看 multiprocessing 的文档。
|
3
lsmgeb89 2017-07-19 04:44:22 +08:00
有好几种不同的类型
google distributed mutual exclusion algorithms |
4
tr0uble 2017-07-19 09:19:29 +08:00
简单的,数据库行锁,缓存 set not exist
复杂的看一下 chubby,redlock |
6
jameshuazhou 2017-07-19 10:59:12 +08:00
首先应该了解单进程内多线程锁的机制,主要是通过 CPU 和操作系统配合来实现资源分配和保护。然后考虑多进程之间如何实现资源保护,原理上讲都是一样的,也需要个中控的系统来调配。结合 Redis 的分布式锁理解下吧。
|