zoukankan      html  css  js  c++  java
  • zookeeper实现分布式锁的原理

    1. 所有抢占资源的客户端,分别在zookeeper的同一个节点(e.g: /lock)下,创建一个自己的,临时有序(-es)的节点
    2. 所有客户端均读取该节点(/lock)下的所有子节点,并判断自己创建的子节点是否是序号最小的
    3. 如果自己序号是最小的,则认为自己抢到了锁,直接执行自己的IO操作,然后删除掉自己创建的那个子节点,即释放锁
    4. 如果自己的序号不是最小的,则认为自己没有抢到锁,此时客户端在所有的子节点中,找到比自己子节点序号小的一个节点,向该节点的delete事件注册一个监听器
    5. 当delete监听器触发的时候,客户端再次确认一下自己的子节点序号是否是最小的,如果是最小的,则执行第3步,否则继续执行第4步

  • 相关阅读:
    变量
    总结 对象
    学生管理系统
    [Altera] Device Part Number Format
    [Matlab] sum
    [Matlab] Galois Field
    [C] static和extern的作用
    [Python] list
    [Python] raw_input
    [软件] UnicornViewer
  • 原文地址:https://www.cnblogs.com/malefeng/p/15211102.html
Copyright © 2011-2022 走看看