当前位置: 首页 > news >正文

基于 ZooKeeper 的分布式锁实现原理是什么?

顺序节点特性:
使用 ZooKeeper 的顺序节点特性,假如我们在/lock/目录下创建3个节点,ZK集群会按照发起创建的顺序来创建节
点,节点分别为/lock/0000000001/lock/0000000002/lock/0000000003,最后一位数是依次递增的,节点名
zk来完成。
临时节点特性:
ZK中还有一种名为临时节点的节点,临时节点由某个客户端创建,当客户端与ZK集群断开连接,则该节点自动被
删除。EPHEMERAL_SEQUENTIAL为临时顺序节点。
根据ZK中节点是否存在,可以作为分布式锁的锁状态,以此来实现一个分布式锁,下面是分布式锁的基本逻辑:
1. 客户端1调用create()方法创建名为“/业务ID/lock-”的临时顺序节点。
2. 客户端1调用getChildren(“业务ID”)方法来获取所有已经创建的子节点。
3. 客户端获取到所有子节点path之后,如果发现自己在步骤1中创建的节点是所有节点中序号最小的,就是看自
己创建的序列号是否排第一,如果是第一,那么就认为这个客户端1获得了锁,在它前面没有别的客户端拿到
锁。
4. 如果创建的节点不是所有节点中需要最小的,那么则监视比自己创建节点的序列号小的最大的节点,进入等
待。直到下次监视的子节点变更的时候,再进行子节点的获取,判断是否获取锁。
http://www.lryc.cn/news/617638.html

相关文章:

  • 车载软件架构 --- 车辆量产后怎么刷写Flash Bootloader
  • 品质检验·稽核管理·客诉管理一站式数字化平台——全星质量管理 QMS 软件系统
  • 打烊频率?阶段说了算
  • 【AI论文】R-Zero:从零数据起步的自进化推理大语言模型
  • 从源码看 Coze:Agent 的三大支柱是如何构建的?
  • AI测试平台实战:深入解析自动化评分和多模型对比评测
  • [CSP-J 2021] 小熊的果篮
  • 记录一些sonic自动化运行中的问题
  • “一车一码一池一充”:GB 17761-2024新国标下电动自行车的安全革命
  • 【C++竞赛】核桃CSP-J模拟赛题解
  • DreaMoving:基于扩散模型的可控视频生成框架
  • Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin
  • 嵌入式学习的第四十八天-中断+OCP原则
  • 美股期权历史市场数据波动率分析教程
  • 软件测评中HTTP 安全头的配置与测试规范
  • U-Boot常用命令完全指南
  • 【浮点数存储】double类型注意点
  • nginx 设置二级目录-实战
  • 【LLM】OpenAI开源GPT级模型,120B及20B参数GPT-OSS
  • SQL中BETWEEN与IN的差异详解
  • 读《精益数据分析》:媒体内容平台全链路梳理
  • 【数据分析】调控网络分析:调节因子在肿瘤样本中的表达相关性与生存效应分析
  • 【k8s】k8s安装与集群部署脚本
  • 网络性能优化:Go编程视角 - 从理论到实践的性能提升之路
  • 定制化4G专网架构,满足多行业专属需求
  • 5G NR NTN 在 PHY 层和 MAC 层实现 OAI
  • PCB批量线路板厂家有哪些?
  • 2025面试题——(12)
  • Vibe Coding 自然语言驱动 AI 编程方式
  • Redis类型之Hash