面试题总结

汪星人 2019-03-15 01:4538 阅读

面试题总结

1、zookeeper如何实现分布式锁,以及羊群效应

zookeeper实现分布式锁主要基于同一个目录下节点名称不能重复的原理。

(1)先创建一个永久性的节点lock,临时节点下不能创建子节点

(2)线程在lock目录下依次创建临时有序节点(避免死锁)01,02,03......

(3)线程查询lock目录下所有的子节点,然后判断自己的节点是最小的

  (a)如果是最小的,那么获取锁成功

  (b)如果不是最小的,那么监听lock目录的删除节点事件(这种实现方式会实现羊群效应)

  (b`)如果不是最小的,监听自己前面一个节点的删除节点事件(避免羊群效应)

  在监听前面一个节点时,避免该节点已被删除,需要再次判断

(4)释放锁时删除自己创建的临时节点

回复数量: 0
暂无评论~~
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!