Neo's Blog

不抽象就无法深入思考
不还原就看不到本来面目!

0%

常见系统设计题系列-分布式锁

分布式锁应该具备哪些条件

  1. 在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行
  2. 高可用的获取锁与释放锁
  3. 高性能的获取锁与释放锁
  4. 具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不必担心数据错误)
  5. 具备锁失效机制,防止死锁
  6. 具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败

ps. 考虑幂等性

分布式锁实现

基于数据库

基于Redis SET命令

基于Memcache CAS命令

基于Zookeeper

具体参考

https://www.jianshu.com/p/a1ebab8ce78a

你的支持是我坚持的最大动力!