Top
今天是个好天气
Home
Go
MySQL
Redis
LeetCode
Hello World
分布式锁
是什么
分布式锁就是分布式场景下的锁,比如多台不同机器上的进程,去竞争同一项资源,就是分布式锁。
具备哪些特性的分布式锁才是一个优秀的分布式锁?
互斥性:锁的目的是获取资源的使用权,所以只让一个竞争者持有锁,这一点要尽可能保证;
安全性:避免死锁情况发生。当一个竞争者在持有锁期间内,由于意外崩溃而导致未能主动解锁,其持有的锁也能够被正常释放,并保证后续其它竞争者也能加锁;
对称性:同一个锁,加锁和解锁必须是同一个竞争者。不能把其他竞争者持有的锁给释放了,这又称为锁的可重入性。
可靠性:需要有一定程度的异常处理能力、容灾能力。
常用实现方式
setnx
如何保证互斥性:Lua
如何保证安全性:支持过期时间
如何保证对成性:加owner
如何保证可靠性:主从容灾、多级部署