您现在的位置是:热点 >>正文
ZooKeeper 分布式锁 Curator 源码 之一:可重入锁
热点7148675人已围观
简介...
前言
一般工作中常用的分布式锁,就是基于 Redis 和 ZooKeeper,前面已经介绍完了 Redisson 锁相关的源码,下面一起看看基于 ZooKeeper 的锁。也就是 Curator 这个框架。
Curator 的锁也分为很多种,本文分析共享可Zo重入锁。
考虑到如果文章篇幅较长,不太适合阅读,所以对文章做了适当的拆分。
1环境配置
本机三个节点
版本:3.7.0 系统:macOS 安装方式:brew install zookeeper Curator Maven 依赖版本:5.1.0
&nboKsp; org.apache.curator curator-recipes 5.1.0  ee; 2加锁示例
详细信息可参考官方文档[1]。
加锁前
在加锁之前,ZooKeeper 仅有一个节点 /zookeeper。
加锁中
在 /locks/lock_01 路径上加锁。
加锁之后:
创建了一个 /locks/lock_01 的持久节点,节点下有一个子节点 _c_ccpe4fc045-5a1e-4378-b3c7-8a8d3fb9a37c-lock-0000000000 节点 /locks/lock_01/_c_cc4fc045-5a1e-4378-b3c7-8a8d3fb9a37c-lock-0000000000 是临时节点r 节点 /locks/lock_01/_c_cc4fc045-5a1e-4378-b3c7-8a8d3fb9a37c-lock-0000000000 的数据是机器 IP 地址 3加锁源码
PS:下面代码截图中的代码风格就是 Curator 源码的代码风格。
入口
InterP分布rocessMutex#internalLock
开始先从 threadData 中获取当前线程,这里肯定是没有的,所以进入 attemptLock 方法。
本方法中还包含了锁重入的逻辑,后面也会介绍。
加锁
LockInternals#attemptLock
核式锁心部分就是这两行:
createsTheLock 创建临时顺序节点 internalLockLoop 判断是否创建成功
创建临时顺序节点
StandardLockInternalsDriver#createsTheLock
可以看出节点的 mode 是 Create CMode.EPHEMERAL_SEQUENTIAL,表示这是一个临时顺序节点!
进入 CreateBuilderImpl#forPath(java.lang.String, byte[])
client.getDefaultData() 就是本机 IP 地址ur。
这个 adjustPath 方法看名字就是在调整路径之类的。会生成一个 UUID 拼接到 /locks/lock_01 中,变成 /locks/lock_01/_c_UUID-lock-。
因为创建的是临时顺序节点,所以会自动在后面添加顺序,最终变为 /locks/latock_01/_c_UUID-lock-0000000000。
具体创建节点是在 CreateBuilderImpl#pathInForeground 中。
创建临时节点,如果路径存在,会创建成功,如果路径不存在会创建失败;
创建失败后,先创建路径,再创建节点。
4or总结
本篇文章主要介绍了基于 ZooKeeper 的分布式锁框架 Curator 的使用,以及加锁流程,源码分析。
下面对内容做下总结:
重点需要关注的是:
基于 ZooKeeper 的分布式锁,是使用的临时顺序节点,父节点是持久节点; 创建临时节点时,父节点不存在,会先创 源建父节点(路径); 锁的组成结构为:对 /locks/lock_01 加锁,实际锁住的是 /locks/lock_01/_c_UUID-lock-序号,举例为 /locks/lock_01/_c_cc4fc045-5a1e-4378-b3c7-8a8d3码 fb9a37c-lock-0000000000
引用链接:
[1]ZooKeeper Shared Reentrant Lock: https://curator.apache.org/curator-recipes/shared-reentrant-lo之一ck.html
Tags:
相关文章
Cohere再融1亿美元估值冲上70亿美元 与AMD达成合作
热点企业级AI模型开发商Cohere周三宣布完成新一轮1亿美元融资,公司估值由此前的68亿美元上升至70亿美元。这笔资金是对该公司8月份5亿美元融资轮次的扩展,当时该轮融资出现超额认购。 除融资消息外,C...
【热点】
阅读更多阿里MuleRun陈宇森:AI Native团队效率是Copilot团队10倍,企业转型窗口期仅18个月
热点5月21日消息,在2026阿里云峰会上,阿里云智能集团副总裁、MuleRun(骡子快跑)负责人陈宇森阐述了MuleRun为企业和个人实现AI Native转型提供的方案,覆盖接入层、生产层和协同层。M...
【热点】
阅读更多标签: 尊界V800 iOS27 月之暗面 华为
热点Hello,大家早上好,又是元气满满的一天,先来浏览新鲜的早报吧~ 【余承东官宣尊界 V800】 华为余承东官宣尊界 V800,定位“超高端 MPV”,新车已在工信部完成申报。车身尺寸庞大,轴距达 3...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.sic-info.org/vi/?s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,Ifa
- https://www.monroecounty.gov/search/?q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,noe
- https://www.kores.com/?s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,yqh
- https://www.partilerdunyasi.com/index.php?route=product/search&tag=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,JGu
- https://www.mynextmove.org/find/search?s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,Pyb
- https://www.goodreads.com/quotes/tag/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】MBQ
- https://www.sonepar.ch/fr/search?q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,g7q
- https://www.lssystems.co.uk/search?page=0&per_page=24&term=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,XUp
- https://www.zutari.com/search/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,nby
- https://www.rockngem.com/?action=CHECK&s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,INa
- https://www.routesonline.com/search/?query=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,0ET
- https://www.pearson.com/en-us/search.html?aq=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,ve4
- https://www.rea.govt.nz/search?searchterm=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,sN5
- https://www.duksung.ac.kr/search/front/Search.jsp?qt=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】q2T
- https://www.roberthalf.com/us/en/jobs/all/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】hqm
- https://www.resopal.de/catalogsearch/result/?action=SEARCH&q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,gTD
- https://www.woorden.org/spreekwoord.php?woord=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,S3s
- https://www.totolink.vn/search/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,1ew
- https://www.pinkpanda.ro/magazin/ingrijirea-tenului?page=87&q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,YdO
- https://www.libros.unam.mx/catalogsearch/result/?cat=37&dir=asc&format=20&lit=20&manufacturer=3230&mode=list&order=year_edition&q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,ool
- https://www.springfieldlibrary.org/?s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,D6c
- https://www.tarleton.edu/?s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,qmN
- https://www.sogou.com/web?query=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,GKi
- https://www.solerpalau.com/en-en/catalogsearch/result/?q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,d4P
- https://www.teacherspayteachers.com/Browse/Price-Range/Free/Search:谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,r5J
- https://www.dba.dk/soeg/?soeg=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】by6
- https://wydden.com/?ID=r8w9WMSKWkOcmiaFWaUv0dzMdqZWfKtF&s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,X7j
- https://www.vietnamconsulate-sf.org/?action=CHECK&s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,OZ0
- https://www.riohondo.edu/?action=QUERY&s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,HUO
- https://www.shopping.com/search.html?keyword=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,LEf
- https://www.yli.ro/catalogsearch/result/?q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,s7U
- https://www.zalora.sg/catalog/?cat=112&q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,VZf
- https://www.scq.ubc.ca/?page=2&s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,dU4
- https://www.lneg.pt/?cat=140&s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,4NX
- https://www.lneg.pt/en/?s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,ys5
- https://yscc1986.net/search/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】Xor
- https://www.searcychamber.com/list/search?AsfnA=DtkTQzs&q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,iSE
- https://www.flickr.com/photos/tags/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】zYM
- https://www.xbiao.com/search/index?tpf&wd=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,QDP
- https://www.sbaad.no/search/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,ShK
- https://www.tumblr.com/tagged/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,XKA
- https://www.olx.ba/pretraga?trazilica=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,RVb
- https://www.nyif.com/catalogsearch/result/index/?f=sarbanesoxleyU&index=me_cms_pe&lit=20&mode=list&p=1&q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,nl1
- https://www.military-history.org/?s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,GDX
- https://www.spoiledsweetboutique.com/search/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,7p2
- https://www.kuaikanmanhua.com/sou/谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,KGb
- https://www.parriscues.com/catalogsearch/result/?q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,v3G
- https://search.danawa.com/dsearch.php?query=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】cYi
- https://www.stormberg.com/no/search?q=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,LBe
- https://www.thealexandrian.net/?s=谷歌霸屏24小时见效-实现思路与效果衡量【tg:seogoogle987】,SX3