【问题标题】:What's a distributed lock and why use it?什么是分布式锁,为什么要使用它?
【发布时间】:2012-08-13 12:29:20
【问题描述】:

为什么人们需要分布式锁?

当共享资源被它的本地机器保护时,这是否意味着我们不需要分布式锁?

我的意思是当共享资源通过使用某种 api 或服务暴露给其他人,并且该 api 或服务使用它的本地锁来保护;那么我们就不需要这种分布式锁了;我说的对吗?

【问题讨论】:

    标签: python database web-services web-applications memcached


    【解决方案1】:

    是和否,如果您通过锁从本地 API 公开您的信息以防止互斥,具体取决于锁的设置方式,您的实现可能正是分布式锁试图完成的实现,但如果您还没有开发过 API,那么您将不得不深入研究 API 的源代码,以确定它是本地化的还是分布式的锁定系统。老实说,锁就是锁,它无论如何都试图做同样的事情。与本地化锁相比,分布式锁的好处是您已经考虑了排队,以防止客户端在昂贵的缓存点上过度访问。

    【讨论】:

    • 嗨,请检查我的回答,希望它能澄清这一点。
    • @ming.kernel 你的答案是教科书锁和互斥锁,正如我所说,锁就是锁。
    【解决方案2】:

    quora 上询问人们之后。我想我得到了答案。

    假设 N 个工作服务器访问一个数据库服务器。这里有两个部分:

    1. 数据库有自己的锁定方法来保护数据不被其他客户端(N 工作服务器)的并发访问损坏。这就是数据库中的本地锁出现的地方。

    2. N 个工作服务器可能需要一些加冕,以确保它们做正确的事情,这是特定于应用程序的。这就是分布式锁出现的地方。比如说,如果两个工作服务器运行相同的进程,删除数据库的一个表并向表中添加一些记录。数据库服务器可以确保其内部数据是正确的,但是这两个进程需要一个分布式锁来相互协调,否则,一个进程会丢弃另一个进程的表。

    【讨论】:

      猜你喜欢
      • 2016-09-30
      • 2011-10-31
      • 1970-01-01
      • 2010-11-02
      • 2017-01-10
      • 2011-02-21
      相关资源
      最近更新 更多