栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

6.zookeeper分布式读写锁

6.zookeeper分布式读写锁

上读锁的条件?大家都可以读,之前的锁没有写锁

如何上读锁?

    创建一个临时序号节点(-e -s 会话断开自动删除),节点的数据是read,代表读锁获取当前zk中序号比自己小的所有节点判断最小节点是否是读锁

    如果不是读锁,则上锁失败为最小节点添加监听。阻塞等待,zk的watch机制会当最小节点发生变化时候通知当前节点,于是再次执行第二步的流程如果是读锁则上锁成功

上写锁的条件?只有得到写锁的才可以写,之前没有任何锁

如何上写锁?

    创建一个临时序号节点(-e -s 会话断开自动删除),节点的数据是write,代表写锁获取当前zk中所有的所有节点判断自己是否是最小节点

    如果不是,说明前面还有锁,上锁失败,监听最小节点,最小节点发生变化,再次执行第二步的流程如果是则上锁成功

羊群效应:上述方式只要最小节点断开,触发监听,如果并发很大对zk的压力非常大–这就是羊群效应。可以调整成链式监听解决。后一个节点只监听它前面的节点。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/742236.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号