您现在的位置是:热点 >>正文
ZooKeeper 分布式锁 Curator 源码之三:可重入锁并发加锁
热点3016人已围观
简介...
前言
在了解了加锁和锁重入之后,最需要了解的还是在分布式场景下或者多线程并发加锁是如何处理的?
1并发加锁
先来看结果,在多线程对 /loZocks/lock_01 加锁时,是在后面又创建了新的临时节点。
这块在加锁方法 CreateBuilderImpl#pathInForegrounoKd 中已经介绍过
这里判断 /locks/lock_01 路径已经存在,会直接创建新的临时顺序节点。
真正判断锁是否获取成功,其实是在 LoceekInternals#attemptLock 方法中的 internalLockLoop 方法中。
加锁结果及监听
internalLockLpeoop 方法的主要作用是判断加锁结果,以及获取锁失败时,对其他节点的监听。
获取父节点 /locks/lock_01 下的所有子节点,按照从r 小到大排序,判断自己是不是获取到锁,没有获取到就监听自己前一个节点; 支持设置超时时间,超时直接返回失败; 不支持设置超时时间或者还没有超时,分布则直接 wait 等待。
是否获取锁的代码在 StandardLockInternalsDriver#getsTheLock
这块就是判断是否为最小节式锁点,因为在 getSortedChildren 中已经对所有节点排序,所以方法中的 List children 是有序的。
maxLeases 是 C在 InterProcessMutex 初始化的时候,指定的值为 1。
最终这里的结果是,判断自己是不是最小,不是最小,就将 pathToWaturch 设置为前一个节点。
只监听自己的前一个节点,可以避免羊群效应!
为什么要进行等待呢?
因为是为了防止无效自旋,因为这里有监听机制,会监听上一个at节点是否释放。
这块是 ZooKeeper 的 Watcher 监听机制,在节点释放的时候,会进行回调,然后使用 Java 的 notifyAll 方法通知所or有的 wait 线程。然后这里的 while trye 会继续执行,重新检查是否获得锁等。
2总结
本文主要介绍了基于 ZooKeeper 的分布式锁框架 Cu 源rator 在并发场景下的锁竞争问题。
重点需要了解的是:
为了避免羊群效应,临时顺序节点,加锁失败后监听的是前一个节点; 为了避免无效自旋,这里使码之用了 Java 的 wait/notifyAll 机制; 可以看出,默认加锁就是公平锁。
Tags:
相关文章
标签: TCL电子 MiniLED TV 量子点TV 光伏业务
热点云梦级3月27日云梦级消息,3月27日晚间,TCL电子(01070.HK)公布最新财报显示,2025年收入突破千亿,达1145.83亿港元,同比增长15.4%;毛利达179亿港元,同比增长15.1%;...
【热点】
阅读更多外媒:谷歌确实该打,但别打错了地方
热点新浪科技讯 北京时间7月9日早间消息,据外媒,谷歌反垄断确实应该好好查一查,但针对谷歌,重点不应在应用商店,而应在搜索引擎。 如果一家公司的服务可以为消费者提供更好的选择,还能比它的主要竞争对手带来更...
【热点】
阅读更多标签: 亿咖通 吉利控股 ECX 汽车智能化
热点云梦级1月13日云梦级消息,全球出行科技企业亿咖通科技(纳斯达克股票代码:ECX)(简称“亿咖通”或“公司”)今日宣布,已于2026年1月8日与吉利投资控股有限公司(简称“吉利控股集团”)签署股份认购...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.swanagerailway.co.uk/search?q=谷歌霸屏推广业务【tg:seogoogle987】,FdC
- https://www.southmeadows.co.uk/2019/07/?s=谷歌霸屏推广业务【tg:seogoogle987】,EuF
- https://www.writingforward.com/?action=SEARCH&s=谷歌霸屏推广业务【tg:seogoogle987】,NKz
- https://5gaa.org/?token=6e2l7hjt2i26gzgctgwdrv7v0j6nxorq&s=谷歌霸屏推广业务【tg:seogoogle987】75b
- https://www.nctsn.org/search?cat=191&query=谷歌霸屏推广业务【tg:seogoogle987】,6Ip
- https://www.kyuhoshi.com/?s=谷歌霸屏推广业务【tg:seogoogle987】,Y6F
- https://www.mynextmove.org/find/search?s=谷歌霸屏推广业务【tg:seogoogle987】,Zou
- https://www.lechzuers.com/de/search?cat=163&q=谷歌霸屏推广业务【tg:seogoogle987】,eg0
- https://www.sbaad.no/search/谷歌霸屏推广业务【tg:seogoogle987】,4uH
- https://www.ncetm.org.uk/search?action=CHECK&q=谷歌霸屏推广业务【tg:seogoogle987】,tae
- https://www.lenovo.com/gb/en/search?action=SEARCH&text=谷歌霸屏推广业务【tg:seogoogle987】,UwN
- https://www.world-architects.com/en/search?term=谷歌霸屏推广业务【tg:seogoogle987】,8QU
- https://m.shoppinghow.kakao.com/m/search/q/谷歌霸屏推广业务【tg:seogoogle987】Tbb
- https://www.pacific-lifestyle.co.uk/search?sort=alphabetical&term=谷歌霸屏推广业务【tg:seogoogle987】,Oyz
- https://www.televes.com/es/catalogsearch/result/?q=谷歌霸屏推广业务【tg:seogoogle987】,pQB
- https://www.flickr.com/photos/tags/谷歌霸屏推广业务【tg:seogoogle987】JSN
- https://www.whiterock2008.com.tw/search?q=谷歌霸屏推广业务【tg:seogoogle987】,rFQ
- https://www.pierreherme.com/catalogsearch/result/?q=谷歌霸屏推广业务【tg:seogoogle987】,vJB
- https://www.sebson.de/en/search?query=谷歌霸屏推广业务【tg:seogoogle987】,YW4
- https://www.remit.co.jp/en/?s=谷歌霸屏推广业务【tg:seogoogle987】,cpN
- https://www.resopal.de/catalogsearch/result/?action=SEARCH&q=谷歌霸屏推广业务【tg:seogoogle987】,2oL
- https://www.thedp.com/page/search?q=谷歌霸屏推广业务【tg:seogoogle987】,D3U
- https://www.miamiopenmri.com/?action=CHECK&s=谷歌霸屏推广业务【tg:seogoogle987】,yB7
- https://www.remit.co.jp/zh/?s=谷歌霸屏推广业务【tg:seogoogle987】,41z
- https://www.sdcard.org/ja/?s=谷歌霸屏推广业务【tg:seogoogle987】,EEx
- https://www.kaskus.co.id/search?q=谷歌霸屏推广业务【tg:seogoogle987】,TK8
- https://www.roberthalf.com/us/en/jobs/all/谷歌霸屏推广业务【tg:seogoogle987】t2n
- https://www.losgatoschamber.com/list/search?action=SEARCH&q=谷歌霸屏推广业务【tg:seogoogle987】,3o5
- https://www.universal-music.co.jp/?ID=1sIcckCTeBS8FjzCshAW9w53s8gr691o&s=谷歌霸屏推广业务【tg:seogoogle987】,eGM
- https://www.tarleton.edu/news/search/谷歌霸屏推广业务【tg:seogoogle987】,Yh7
- https://www.niaogebiji.com/pc/article/search?keyword=谷歌霸屏推广业务【tg:seogoogle987】,8Jc
- https://www.kaiyueleather.com/search/谷歌霸屏推广业务【tg:seogoogle987】,2gW
- https://www.takachi-enclosure.com/search?eqYB=gnI31Ou&text=谷歌霸屏推广业务【tg:seogoogle987】,9ZA
- https://www.sic-info.org/en/?s=谷歌霸屏推广业务【tg:seogoogle987】,jsW
- https://www.partilerdunyasi.com/index.php?route=product/search&tag=谷歌霸屏推广业务【tg:seogoogle987】,Gd1
- https://www.resilienz-akademie.com/?cat=71&s=谷歌霸屏推广业务【tg:seogoogle987】,LII
- https://nicolazzi.it/en/?s=谷歌霸屏推广业务【tg:seogoogle987】,HRT
- https://www2.ual.es/ProyectoLates/?s=谷歌霸屏推广业务【tg:seogoogle987】,iTr
- https://www.terramania.nl/catalogsearch/result/index/?q=谷歌霸屏推广业务【tg:seogoogle987】,H7f
- https://www.lindseymedicalsupply.com/search/谷歌霸屏推广业务【tg:seogoogle987】,PR0
- https://www.selfsufficientish.com/main/?s=谷歌霸屏推广业务【tg:seogoogle987】,68M
- https://store.line.me/search/sticker/ja?q=谷歌霸屏推广业务【tg:seogoogle987】3gE
- https://www.mingwai.edu.hk/?langzh-hant&s=谷歌霸屏推广业务【tg:seogoogle987】,cZJ
- https://www.lneg.pt/?cat=140&s=谷歌霸屏推广业务【tg:seogoogle987】,dNU
- https://www.kingston.gov.uk/site-search/results/?q=谷歌霸屏推广业务【tg:seogoogle987】,xCY
- https://xn--lgernevedlystskoven-lxb.dk/search/谷歌霸屏推广业务【tg:seogoogle987】,Oed
- https://www.supersauna.de/catalogsearch/result/?q=谷歌霸屏推广业务【tg:seogoogle987】,RFm
- https://www.teamlab.art/it/?submit=谷歌霸屏推广业务【tg:seogoogle987】,Mn0
- https://www.pickett.co.uk/collections/vendors?q=谷歌霸屏推广业务【tg:seogoogle987】,2BY
- https://www.sweat.com/collections/vendors?q=谷歌霸屏推广业务【tg:seogoogle987】,l3v