分布式锁通俗解读( 四 )


但是我们可能还需要注意到一点 , 就是惊群效应:举一个很简单的例子 , 当你往一群鸽子中间扔一块食物 , 虽然最终只有一个鸽子抢到食物 , 但所有鸽子都会被惊动来争夺 , 没有抢到…
就是当服务器1节点有变化 , 会通知其余的99个服务器 , 但是最终只有1个服务器会创建成功 , 这样98还是需要等待监听 , 那么为了处理这种情况 , 就需要用到临时顺序性节点 。大致意思就是 , 之前是所有99个服务器都监听一个节点 , 现在就是每一个服务器监听自己前面的一个节点 。
假设100个服务器同时发来请求 , 这个时候会在/zkjjj节点下创建100个临时顺序性节点/zkjjj/000000001 , /zkjjj/000000002 , 一直到/zkjjj/000000100 , 这个编号就等于是已经给他们设置了获取锁的先后顺序了 。
当001节点处理完毕 , 删除节点后 , 002收到通知 , 去获取锁 , 开始执行 , 执行完毕 , 删除节点 , 通知003~以此类推 。




推荐阅读