原文:ZooKeeper 分布式锁 Curator 源码 01:可重入锁

前言 一般工作中常用的分布式锁,就是基于 Redis 和 ZooKeeper,前面已经介绍完了 Redisson 锁相关的源码,下面一起看看基于 ZooKeeper 的锁。也就是 Curator 这个框架。 Curator 的锁也分为很多种,本文分析共享可重入锁。 考虑到如果文章篇幅较长,不太适合阅读,所以对文章做了适当的拆分。 环境配置 本机三个节点 版本: . . 系统:macOS 安装方式: ...

2021-07-16 10:19 0 328 推荐指数:

查看详情

ZooKeeper 分布式 Curator 源码 02:可重入重复加锁和释放

前言 加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢? 重入 在上一小节中,可以看到加锁的过程,再回头看 internalLock 这个方法。 加锁成功之后,将当前线程放到 threadData 中,threadData 是 ConcurrentMap<Thread ...

Thu Jul 22 00:06:00 CST 2021 4 199
ZooKeeper 分布式 Curator 源码 03:可重入并发加锁

前言 在了解了加锁和重入之后,最需要了解的还是在分布式场景下或者多线程并发加锁是如何处理的? 并发加锁 先来看结果,在多线程对 /locks/lock_01 加锁时,是在后面又创建了新的临时节点。 这块在加锁方法 CreateBuilderImpl#pathInForeground ...

Fri Jul 23 04:13:00 CST 2021 0 131
Redisson 分布式源码 01:可重入加锁

前言 相信小伙伴都是使用分布式服务,那一定绕不开分布式服务中数据并发更新问题! 单系统很容易想到 Java 的各种,像 synchronize、ReentrantLock 等等等,那分布式系统如何处理? 当然是使用分布式。 如果小伙伴不知道什么是分布式,那推荐看看石杉老师的突击课 ...

Fri Jul 02 16:23:00 CST 2021 0 300
ZooKeeper 分布式 Curator 源码 04:分布式信号量和互斥

前言 分布式信号量,之前在 Redisson 中也介绍过,Redisson 的信号量是将计数维护在 Redis 中的,那现在来看一下 Curator 是如何基于 ZooKeeper 实现信号量的。 使用 Demo 控制台输出数据如下: 源码 获取凭证 核心源码 ...

Fri Jul 23 18:20:00 CST 2021 0 209
Curator Zookeeper分布式

Curator Zookeeper分布式 pom.xml中添加如下配置 zookeeper配置 下载zookeeper并解压至D:\java\zookeeper-3.4.6: zookeeper配置文件: zoo-1.cfg zoo-2.cfg和zoo-3.cfg修改 ...

Tue Nov 29 16:33:00 CST 2016 0 1452
Curator框架实现ZooKeeper分布式

排他(X) 这里主要讲讲分布式中的排他。排他(Exclusive Locks,简称X),又称为写锁或独占,是一种基本的类型。如果事务T1对数据对象O1加上了排他,那么在整个加锁期间,只允许T1对O1进行数据的读取和更新操作,其它任何事务都不能对O1进行任何类型的操作,直道T1 ...

Mon Aug 26 22:36:00 CST 2019 0 2032
Curator实现zookeeper分布式的基本原理

一、写在前面 之前写过一篇文章(《拜托,面试请不要再问我Redis分布式的实现原理》),给大家说了一下Redisson这个开源框架是如何实现Redis分布式原理的,这篇文章再给大家聊一下ZooKeeper实现分布式的原理。 同理,我是直接基于比较常用的Curator这个开源框架 ...

Sun Dec 01 06:33:00 CST 2019 0 255
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM