栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

zookeeper深度剖析二(分布式锁)

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zookeeper深度剖析二(分布式锁)

二)zookeeper实现分布式锁 1)基于curatorFramework实现分布式锁




在zk上边,会为每个抢占锁的客户端创建一个临时有序节点,当客户端断开连接后,若心跳超时,则zk会删除临时节点;

2)jmeter压测

如下图所示,添加Thread Group和HTTP Request,其中Thread Group有三个重要属性,包括并发线程数,并发多长时间内,一共发几次;HTTP Request配置有path,表示接口访问路径;

如下图添加压测报告

3)基于curatorFramework分布式锁的源码 3.1)加锁




这里用concurrentHashmap存储锁信息,key为当前线程实例,value为LockData实例,存储锁信息,包括所属线程,存储路径,重入次数;

先创建临时有序节点,并返回zk上的存储路径,接着调用internalLockLoop方法获取锁;

先找出所有有序节点中,序号最小的节点,该节点获取锁;其他节点会添加一个watch,监听其上一个节点;

其他非最小序号节点未获得锁,则进入阻塞在synchronized处,以LockInternals的实例变量为锁对象;而只有一个线程获得了同步锁,其中又会释放锁,此时会进入wait等待,而其他线程此时会获得锁,其中又会释放锁进入wait状态,最终所有阻塞的线程都会进入wait状态,当监听机制发现有相关事件产生时,会唤醒所有等待的线程,这些线程继续判断自身是否是最小的序号,如果是则获取到锁,否则继续进入wait状态,当触发监听事件后,再次唤醒;

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

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

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