首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是分布式锁,为什么要使用它?

什么是分布式锁,为什么要使用它?
EN

Stack Overflow用户
提问于 2012-08-17 03:19:52
回答 2查看 3.9K关注 0票数 6

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

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

我的意思是,当通过某种api或服务向其他人公开共享资源时,这个api或服务使用它的本地锁进行保护;那么我们不需要这种分布式锁;对吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-17 08:56:19

奎拉上询问人们之后。我想我知道答案了。

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

  1. 数据库有自己的锁方法来保护数据不被其他客户端(N个工作服务器)的并发访问破坏。这就是数据库中的本地锁出现的地方。
  2. N工作服务器可能需要加冕以确保它们做的是正确的事情,这是特定于应用程序的。这就是分布式锁出现的地方。例如,如果两个运行相同进程的辅助服务器删除了数据库的一个表,并向该表添加了一些记录。数据库服务器可以确保其内部数据是正确的,但这两个进程需要一个分布式锁来相互协调,否则,一个进程将删除另一个进程的表。
票数 4
EN

Stack Overflow用户

发布于 2012-08-17 07:47:52

是和不是,如果您通过锁公开来自本地API的信息以防止互斥(取决于锁的设置方式),那么您的实现可能正是分布式锁试图完成的实现,但是如果您还没有开发API,那么您必须深入了解API的源,以确定它是本地化的还是分布式的锁定系统。老实说,锁就是锁,不管发生什么,它都试图做同样的事情。分布式锁相对于本地化锁的好处是,您已经在考虑排队,以防止客户端在昂贵的缓存点上过度访问。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11999324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档