但是我们可能还需要注意到一点 , 就是惊群效应:举一个很简单的例子 , 当你往一群鸽子中间扔一块食物 , 虽然最终只有一个鸽子抢到食物 , 但所有鸽子都会被惊动来争夺 , 没有抢到…
就是当服务器1节点有变化 , 会通知其余的99个服务器 , 但是最终只有1个服务器会创建成功 , 这样98还是需要等待监听 , 那么为了处理这种情况 , 就需要用到临时顺序性节点 。大致意思就是 , 之前是所有99个服务器都监听一个节点 , 现在就是每一个服务器监听自己前面的一个节点 。
假设100个服务器同时发来请求 , 这个时候会在/zkjjj节点下创建100个临时顺序性节点/zkjjj/000000001 , /zkjjj/000000002 , 一直到/zkjjj/000000100 , 这个编号就等于是已经给他们设置了获取锁的先后顺序了 。
当001节点处理完毕 , 删除节点后 , 002收到通知 , 去获取锁 , 开始执行 , 执行完毕 , 删除节点 , 通知003~以此类推 。
推荐阅读
- iOS设备修改锁屏底部字样详解
- 手机密码忘了怎么办?要怎么开锁呢?
- 分布式系统:时间、时钟和事件序列
- Redis实现分布式锁与Zookeeper实现分布式锁区别
- 揭秘华为分布式技术
- iphone相册加密码锁,保护隐私
- 基于redis来实现的分布式锁
- 分布式数据中心的五大优势
- Redis:解决分布式高并发修改同一个Key的问题
- 正确的红茶保存方法锁住健康真滋味