Skip to content

shawnHsx/shawnhsx.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 

Repository files navigation

分布式锁实现

  • 数据库
    根据数据库唯一索引,获取锁时插入数据记录,插入成功则获得锁,否则获取锁失败。执行完成后删除该条记录释放分布式锁。
  • zookeeper
    在固定的目录下(如:lock),每个线程(客户端)创建临时顺序节点;客户端查询所有节点列表,判断自己是否为最小序号节点,如果是则获取锁,否则则监听lock下的所有子节点并更信息(节点创建,删除,变更),获得变更信息后再次比较节点序号值,直到获取锁。(临时节点在session断开或者超时会自动删除)
  • redis
    使用set命令设置key值,如果设置成功则返回true,获得锁,否则则返回false,获取锁失败。防止死锁(key一直存在)设置key过期时间以及执行完逻辑删除key。

Releases

No releases published

Packages

No packages published