zookepper分布式锁

1.数据库

性能差

2.redis

可能出现死锁

3.zookeeper

功能:zk存储,读取数据;数据节点监听服务,临时节点跟客户端断开数据丢失;持久节点跟客户端断开数据还在

两种方式:

1.创建临时节点,创建成功获得锁,创建同名则报错,监听lock节点的删除事件,加锁线程执行完业务逻辑解锁删除临时节点,则触发删除事件,则重新去获得锁

2.创建临时有序节点,只需要监听一个,所以性能好,但是资源占用多

trylock:创建临时有序节点,获取临时节点集合并排序,判断自己是不是最小的节点,是则加锁成功;否则获得前边的节点监听其删除事件,前边节点删除时,则重新trylock

unlock:释放锁就是删除节点或者客户端断开

第一种:

 

 

 

 

第二种:

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章