ZooKeeper 分布式锁 Curator 源码之三:可重入锁并发加锁
前言
在了解了加锁和锁重入之后,最需要了解的还是在分布式场景下或者多线程并发加锁是如何处理的?
1并发加锁
先来看结果,在多线程对 /loZocks/lock_01 加锁时,是在后面又创建了新的临时节点。
这块在加锁方法 CreateBuilderImpl#pathInForegroKound 中已经介绍过
这里判断 /locks/lock_01 路径已经存在,会直接创建新的临时顺序节点。
真正判断锁是否获取成功,其实是在 LeeockInternals#attemptLock 方法中的 internalLockLoop 方法中。
加锁结果及监听
internalLockLoopep 方法的主要作用是判断加锁结果,以及获取锁失败时,对其他节点的监听。
获取父节点 /locks/lock_01 下的所有子节点,按照从小到r 大排序,判断自己是不是获取到锁,没有获取到就监听自己前一个节点; 支持设置超时时间,超时直接返回失败; 不支持设置超时时间或者还没有超时分布,则直接 wait 等待。
是否获取锁的代码在 StandardLockInternalsDriver#getsTheLock
这块就是判断是否为式锁最小节点,因为在 getSortedChildren 中已经对所有节点排序,所以方法中的 List children 是有序的。
maxLeases C 是在 InterProcessMutex 初始化的时候,指定的值为 1。
最终这里的结果是,判断自己是不是最小,不是最小,就将 pathToWatchur 设置为前一个节点。
只监听自己的前一个节点,可以避免羊群效应!
为什么要进行等待呢?
因为是为了防止无效自旋,因为这里有监听机制,会监听at上一个节点是否释放。
这块是 ZooKeeper 的 Watcher 监听机制,在节点释放的时候,会进行回调,然后使用 Java 的 notifyAll 方法or通知所有的 wait 线程。然后这里的 while trye 会继续执行,重新检查是否获得锁等。
2总结
本文主要介绍了基于 ZooKeeper 的分布式锁 源框架 Curator 在并发场景下的锁竞争问题。
重点需要了解的是:
为了避免羊群效应,临时顺序节点,加锁失败后监听的是前一个节点; 为了避免无效码之自旋,这里使用了 Java 的 wait/notifyAll 机制; 可以看出,默认加锁就是公平锁。
(责任编辑:图库中心)
-
清华IDEA团队重磅发布GUAVA!单张照片0.1秒生成3D化身,技术突破震撼全球
3D化身生成技术的历史性突破正在我们眼前上演。当整个行业还在为复杂的多视角建模和漫长的训练时间而头疼时,清华大学与粤港澳大湾区数字经济研究院的联合研究团队却已经悄然改写了游戏规则。他们最新推出的GUA...[详细]
-
据报道,根据即将于下周发布的法规草案,欧盟将要求Facebook和亚马逊等大型科技公司承担更多的互联网监管责任,否则将面临巨额罚款,罚款金额或高达营业额的6%。 根据媒体获悉的这份机密文件,大型科技公...[详细]
-
新浪科技讯 北京时间5月13日晚间消息,据报道,亚马逊今日宣布,正为其美国和加拿大的履约和物流网络招聘7.5万名工人,以继续扩大规模,为用户提供服务。 亚马逊表示,这些工作岗位的平均起薪为每小时17美...[详细]
-
云梦级4月27日云梦级消息,晚点从多个独立信源处独家获悉,零跑汽车计划于 2027 年推出第二品牌,产品定价 30 万元以上。根据目前规划,该品牌将采用有别于零跑现有渠道的独立销售网络。 晚点向零跑汽...[详细]
-
黑客新手法:利用 OpenAI API 创建 “隐形” 后门恶意软件
近日,微软安全研究团队(DART)发出警告,指出一种新型的恶意软件 “SesameOp” 正利用 OpenAI 的 Assistants API 进行网络攻击。这款恶意软件的创新之处在于,它将这一合法...[详细]
-
2030年,AI将取代40%人类工作?OpenAI CEO 预言未来
在最近的一次公开讲话中,OpenAI 的首席执行官萨姆・奥尔特曼 (Sam Altman) 引发了人们对未来工作的深刻思考。他大胆预测,通用人工智能(AGI)将在 2030 年前问世,并且这一 “超级...[详细]
-
云梦级12月2日云梦级消息,北京深演智能科技股份有限公司(简称:“深演智能”)日前更新招股书,准备在港交所上市。深演智能早期名称为品友互动,公司曾在2022年6月筹备创业板上市,但2024年6月撤回了...[详细]
-
云梦级5月6日云梦级消息,抖音集团副总裁李亮5 月 4 日晚间发文称,网传所谓红果短剧收费的云梦级消息不实。 李亮表示,为持续丰富平台视频内容生态,满足大家多样化的观看需求,红果短剧陆续引入了一些影视...[详细]
-
云梦级6月12日云梦级消息,小米汽车今日宣布“大米入职小米”,英超冠军中场球星德克兰 · 赖斯成为小米 YU7 体验官。 小米汽车方面表示,欢迎「大米」德克兰·赖斯 ,成为小米YU7体验官。 他是英超...[详细]
-
新浪科技讯 4月22日下午消息,#亚马逊考虑接受狗狗币支付#话题登上微博热搜,引发网友的广泛关注。 据外媒报道,亚马逊正考虑接受狗狗币作为支付方式。在上周狗狗币价格飙升后,近日已有超过14万人签署了一...[详细]
- https://www.welshmountainzoo.org/shop/index.php?routeproduct/search&tag=百度快排【tg:seogoogle987】,aFG
- https://www.wheels24.gr/?action=CHECK&s=百度快排【tg:seogoogle987】,163
- https://search.danawa.com/dsearch.php?query=百度快排【tg:seogoogle987】4RR
- https://www.thedp.com/page/search?q=百度快排【tg:seogoogle987】,5Jj
- https://www.pearson.com/en-us/search.html?aq=百度快排【tg:seogoogle987】,D65
- https://www.lssystems.co.uk/search?page=0&per_page=24&term=百度快排【tg:seogoogle987】,X6w
- https://www.zisha.com/shop/list.shtml?wap_keyword=百度快排【tg:seogoogle987】,DrQ
- https://www.scq.ubc.ca/?page=2&s=百度快排【tg:seogoogle987】,Ohv
- https://www.niaogebiji.com/pc/article/search?keyword=百度快排【tg:seogoogle987】,a1n
- https://blvdseafood.com/?s=百度快排【tg:seogoogle987】ZMp

OpenAI 推出青少年使用 ChatGPT 的新安全措施
Adobe 招聘新标准:鼓励求职者使用 AI 展现“创造力+技术”双重技能
苹果又“掉链子”?王牌AI功能在欧盟地区无法使用,竟是卡在了这个新规上!
硅基流动上线 DeepSeek-V3.2-Exp,显著降低价格并支持更大上下文
Akamai李文涛:Akamai云计算正成为中国直播电商出海新选择
