从 Java 锁到分布式锁
从 Java 锁到分布式锁
|
java |
0 评论
在并发编程中常用到 synchronized 以及 ReentrantLock 锁,在业务开发过程中也可能会用到分布式锁,分布式锁常用框架的就是基于 Redis 实现的分布式锁框架 Redisson 和 基于 Zookeeper 实现的分布式锁框架 Curator。当然,也有其他的锁实现方式,在这里不做介绍。
ZooKeeper 分布式锁 Curator 源码 05:分布式读写锁和联锁
ZooKeeper 分布式锁 Curator 源码 05:分布式读写锁和联锁
|
Curator 同样支持分布式读写锁 和联锁,只需要使用 InterProcessReadWriteLock 即可,来一起看看它的源码以及实现方式。
ZooKeeper 分布式锁 Curator 源码 04:分布式信号量和互斥锁
ZooKeeper 分布式锁 Curator 源码 04:分布式信号量和互斥锁
|
分布式信号量,之前在 Redisson 中也介绍过,Redisson 的信号量是将计数维护在 Redis 中的,那现在来看一下 Curator 是如何基于 ZooKeeper 实现信号量的。
ZooKeeper 分布式锁 Curator 源码 03:可重入锁并发加锁
ZooKeeper 分布式锁 Curator 源码 03:可重入锁并发加锁
|
在了解了加锁和锁重入之后,最需要了解的还是在分布式场景下或者多线程并发加锁是如何处理的?
ZooKeeper 分布式锁 Curator 源码 02:可重入锁重复加锁和锁释放
ZooKeeper 分布式锁 Curator 源码 02:可重入锁重复加锁和锁释放
|
加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢?
ZooKeeper 分布式锁 Curator 源码 01:可重入锁
ZooKeeper 分布式锁 Curator 源码 01:可重入锁
|
一般工作中常用的分布式锁,就是基于 Redis 和 ZooKeeper,前面已经介绍完了 Redisson 锁相关的源码,下面一起看看基于 ZooKeeper 的锁。也就是 Curator 这个框架。
Redisson 分布式锁源码 11:Semaphore 和 CountDownLatch
Redisson 分布式锁源码 11:Semaphore 和 CountDownLatch
|
Redisson 除了提供了分布式锁之外,还额外提供了同步组件,Semaphore 和 CountDownLatch。
Redisson 分布式锁源码 10:读写锁
Redisson 分布式锁源码 10:读写锁
|
Redisson 还支持可重入读写锁,允许在分布式场景下,同时有多个读锁和一个写锁处于加锁状态。
Redisson 分布式锁源码 09:RedLock 红锁的故事
Redisson 分布式锁源码 09:RedLock 红锁的故事
|
RedLock 红锁,是分布式锁中必须要了解的一个概念。 但是不建议使用 Redisson 实现的 Redis 的红锁。
Redisson 分布式锁源码 08:MultiLock 加锁与锁释放
Redisson 分布式锁源码 08:MultiLock 加锁与锁释放
|
基于 Redis 的 Redisson 分布式联锁 RedissonMultiLock 对象可以将多个 RLock 对象关联为一个联锁,每个 RLock 对象实例可以来自于不同的 Redisson 实例。