REDIS

Redis实战14-分布式锁基本原理和不同实现方式对比

在上一篇文章(Redis实战13-集群下线程并发安全问题)中,我们知道了,当在集群环境下,synchronized关键字实现的JVM级别锁会失效的。那么怎么解决这个问题呢?我们可以使用分布式锁来解决。本文咱们就来介绍分布式锁基本原理以及不同实现方式对比。我们先来回顾,JVM级别锁的时序图。如下图:在集群下,不同jvm,就有多个锁监视器。那么,使用分布式锁应该是什么样的?我们可不可以把锁监视器提出来

在上一篇文章(Redis实战13-集群下线程并发安全问题)中,我们知道了,当在集群环境下,synchronized关键字实现的JVM级别锁会失效的。那么怎么解决这个问题呢?我们可以使用分布式锁来解决。本文咱们就来介绍分布式锁基本原理以及不同实现方式对比。

我们先来回顾,JVM级别锁的时序图。如下图:

7dddb0045fa89e3eaee3192ceec7af06.png

在集群下,不同jvm,就有多个锁监视器。那么,使用分布式锁应该是什么样的?我们可不可以把锁监视器提出来,放到一个三方组件中,集群中所以的JVM进程都可以共享访问到这个公共的锁监视器呢?如下图:

051bb1494fadcfc49c20e0d4f1388002.png

上图就是分布式锁的示意图。那么什么是分布式锁呢?

什么是分布式锁?

分布式锁需要满足分布式系统或者集群模式下多个进程可见并且互斥的锁。

分布式锁应该满足什么样的条件呢?

可见性

多个线程都能看到相同的结果,

注意:

原创不易,完成人机校验,阅读全文

相关推荐