此篇介绍一下分布式锁的相关内容。

当共享资源出现竞争时,为了防止出现并发问题,我们一般会采用锁机制来进行控制。在单机环境下,可以使用synchronized或Lock来实现;但是在分布式系统中,因为竞争的进程可能不在同一个节点上,所以需要一个让所有进程都能访问到的锁来实现,比如Redis、ZooKeeper等。

分布式锁

1. 基于数据库,如MySQL的实现

2. 基于缓存,如Redis的实现

Distributed locks with Redis

3. 基于ZooKeeper、etcd的实现

使用Zookeeper中的watch机制,当节点发生变化时,通知到监听者。