面试题总结
1、zookeeper如何实现分布式锁,以及羊群效应
zookeeper实现分布式锁主要基于同一个目录下节点名称不能重复的原理。
(1)先创建一个永久性的节点lock,临时节点下不能创建子节点
(2)线程在lock目录下依次创建临时有序节点(避免死锁)01,02,03......
(3)线程查询lock目录下所有的子节点,然后判断自己的节点是最小的
(a)如果是最小的,那么获取锁成功
(b)如果不是最小的,那么监听lock目录的删除节点事件(这种实现方式会实现羊群效应)
(b`)如果不是最小的,监听自己前面一个节点的删除节点事件(避免羊群效应)
在监听前面一个节点时,避免该节点已被删除,需要再次判断
(4)释放锁时删除自己创建的临时节点
如对本文有疑问, 点击进行留言回复!!
解决idea中出现“illegal character U+200B” 问题
荐 为什么加了@Transactional注解,事务没有回滚?
Attribute ‘sklearn.linear_model._logistic.LogisticRegression.multi_class‘ must be explicitly set to
Java/Python实现 LeetCode剑指Offer 14-I.剪绳子(动态规划)
网友评论