zoukankan      html  css  js  c++  java
  • 2020-06-18:ZK的分布式锁怎么实现?

    福哥答案2020-06-18:

    Zk分布式锁有两种实现方式
    一种比较简单,应对并发量不是很大的情况。
    获得锁:创建一个临时节点,比如/lock,如果成功获得锁,如果失败没获得锁,返回false
    释放锁:删除/lock节点
    锁等待:使用监听机制,监听lock节点,如果lock节点被删除,重新去抢锁,否则一直等待

    第二种方式,这种方式比第一种复杂点,但解决了羊群效应问题。
    获得锁:创建临时带序号的节点,排序,判断创建的节点是否是当前目录下最小的,如果最小获得锁结束
    如果不是,获得当前节点的前面一个节点名称,进入锁等待
    释放锁:删除创建的临时带序号节点
    锁等待:获取第一步的获的前一个节点名称,使用监听机制,监听这节点,当这个节点被删除的时候,重新去抢锁

  • 相关阅读:
    polya定理
    树状数组
    离散数学通路数的矩阵计算法
    高次同余方程求解
    Uva1378
    poj2888
    poj2409&&poj1286
    poj2182
    poj2154
    判断一个字符是否为汉字
  • 原文地址:https://www.cnblogs.com/waitmoon/p/13442472.html
Copyright © 2011-2022 走看看