当前位置:主页 > 查看内容

【JavaP6大纲】Zookeeper篇:分布式锁

发布时间:2021-05-16 00:00| 位朋友查看

简介:Zookeeper分布式锁 客户端A要获取分布式锁的时候首先到locker下创建一个临时顺序节点node_n然后立即获取locker下的所有一级子节点。此时因为会有多个客户端同一时间争取锁因此locker下的子节点数量就会大于1。对于顺序节点特点是节点名称后面自动有一个数字……

Zookeeper分布式锁?

客户端A要获取分布式锁的时候首先到locker下创建一个临时顺序节点(node_n),然后立即获取locker下的所有(一级)子节点。此时因为会有多个客户端同一时间争取锁,因此locker下的子节点数量就会大于1。对于顺序节点,特点是节点名称后面自动有一个数字编号,先创建的节点数字编号小于后创建的,因此可以将子节点按照节点名称后缀的数字顺序从小到大排序,这样排在第一位的就是最先创建的顺序节点,此时它就代表了最先争取到锁的客户端!此时判断最小的这个节点是否为客户端A之前创建出来的node_n,如果是则表示客户端A获取到了锁,如果不是则表示锁已经被其它客户端获取,因此客户端A要等待它释放锁,也就是等待获取到锁的那个客户端B把自己创建的那个节点删除。此时就通过监听比node_n次小的那个顺序节点的删除事件来知道客户端B是否已经释放了锁,如果是,此时客户端A再次获取locker下的所有子节点,再次与自己创建的node_n节点对比,直到自己创建的node_n是locker的所有子节点中顺序号最小的,此时表示客户端A获取到了锁!

;原文链接:https://blog.csdn.net/java_wxid/article/details/115489951
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:罗德里格斯(Rodrigues)旋转公式及其推导 下一篇:没有了

推荐图文


随机推荐