分布式锁简介
在分布式场景中分布式锁是一种很常见的需求。实现一个分布式锁要注意以下几点:
- 安全: 独享(相互排斥)。在任意一个时刻,只有一个客户端持有锁。
- 锁失效保护: 无死锁。即便持有锁的客户端崩溃(crashed)或者网络被分裂(gets partitioned),锁仍然可以被获取。
- 集群容错。 只要大部分节点都活着,客户端就可以获取和释放锁。
- 原子性:获取释放锁最好是原子操作,获取释放锁的性能要好。
- 可重入(optional): 同一个线程在没有释放锁之前,如果想再次操作,可以直接获得锁。
- 阻塞/非阻塞(optional):若没有获取到锁,返回获取失败。







