Redis/ZK - 分布式锁
2021-03-25 23:23:56 0 举报
登录查看完整内容
redis基于redisson原理,zk基于curator原理,并附加死锁检测插件的实现
作者其他创作
大纲/内容
1
unLock
Y
Topic
Thread - 1
5
持有锁
first return
重入次数降为0
tryLock
hasLock
second return
unlock
N
lock
watchDog
key2
event
return
YmsLock
锁使用
死锁检测
未持有则cancel
least begin time
5. 重入减少至0
PriorityBlockingQueue
watchwait
FixCircularQueue
watch
key1
Thread - 2
tryLockagain
3.进入阻塞
0000000001
核心问题:1. 不能出现死锁(持锁节点death)2. 未获取到锁的线程需要释放CPU
Redis
6. onMessage-唤醒
YmsLockFactory
head
3
weak
4. 释放
临界区
WAITING
node
最近N次持锁时间
2
firstsuccess
0000000000
7. 竞争
锁创建
插件:死锁检测,优雅关闭
0000000002
failed
ZK
tail
给lock续命
2. again
1. subscribe
0 条评论
回复 删除
下一页