为什么人们需要分布式锁?
当共享资源由其本地机器保护时,这是否意味着我们不需要分布式锁呢?
我的意思是,如果通过某种api或服务将共享资源暴露给其他人,并且此api或服务使用其本地锁进行保护,那么我们就不需要这种分布式锁了吗? 我说得对吗?
为什么人们需要分布式锁?
当共享资源由其本地机器保护时,这是否意味着我们不需要分布式锁呢?
我的意思是,如果通过某种api或服务将共享资源暴露给其他人,并且此api或服务使用其本地锁进行保护,那么我们就不需要这种分布式锁了吗? 我说得对吗?
在Quora上询问后,我认为我得到了答案。
假设有N个工作服务器访问一个数据库服务器。这里有两个部分:
数据库有自己的锁定方法来保护数据不被其他客户端(N个工作服务器)并发访问破坏。这就是本地锁在数据库中的作用。
N个工作服务器可能需要一些协调以确保它们正在做正确的事情,这是应用程序特定的。这就是分布式锁发挥作用的地方。比如,如果两个运行相同进程的工作服务器要删除数据库中的某个表并向该表添加一些记录,则数据库服务器可以确保其内部数据是正确的,但这两个进程需要分布式锁来协调彼此,否则一个进程将删除另一个进程的表。