1.数据库

性能差

2.redis

可能出现死锁

3.zookeeper

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

两种方式:

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

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

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

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

第一种:

zookepper分布式锁

 

zookepper分布式锁

 

zookepper分布式锁

 

zookepper分布式锁

 

zookepper分布式锁

第二种:

zookepper分布式锁

 

zookepper分布式锁

 

zookepper分布式锁

 

zookepper分布式锁

 

zookepper分布式锁

 

zookepper分布式锁

 

 

相关文章:

猜你喜欢
  • 2021-04-11
  • 2021-07-09
  • 2021-10-30
  • 2021-11-23
  • 2021-08-01
  • 2022-02-20
  • 2021-06-20
相关资源
相似解决方案