![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式锁
文章平均质量分 82
简熵
人活着就是在对抗熵增定律,生命以负熵为生。生活工作如此,技术架构亦如此。
展开
-
万剑归宗之七剑下天山,redisson的百锁解构(下)
上文,我们分析了redisson剑谱里面的前四式,参见【万剑归宗,redisson的百锁解构(上) 】,本文将继续解构后面的四个招式,对于这些招式的拆解,除了可以让我们对redisson知其然知其所以然,也可以帮助我们去理解jdk中本身就已经实现的那些锁。继续演练余下的几招,以指为剑,剑破苍穹。【 招式四 读写锁 】读写锁,在很多业务场景中,读多写少,多个客户端可以同时读,但是有人写的时...原创 2019-01-17 17:07:24 · 478 阅读 · 0 评论 -
扒开Redisson的小棉袄,Debug深入剖析分布式锁之可重入锁No.1
上次搭建好三主三从的redis cluster集群之后,也试了试redission的加锁解锁的API,那么redission是怎么实现分布式锁的呢?我们就开始对这几行关键的代码进行分析,打好断点,debug调试,是分析源码,学习源码的一个好的方法,OK,让我们开始一场浪漫绚丽的源码探索之旅,redisson的源码写的很漂亮哦。 首先,我们主要去关注加锁的过程,那么对于redi...原创 2019-01-08 17:08:36 · 4426 阅读 · 0 评论 -
汪~汪~汪~redisson的WatchDog是如何看家护院的?
上一文,我们分析了redisson加锁的过程,总结来说,流程不复杂,代码也很直观,主要是异步通过lua脚本执行了加锁的逻辑。其中,我们注意到了一些细节,比如 RedissonLock中的变量internalLockLeaseTime,默认值是30000毫秒,还有调用tryLockInnerAsync()传入的一个从连接管理器获取的getLockWatchdogTimeout(),他的默...原创 2019-01-09 20:32:58 · 20076 阅读 · 32 评论 -
画分布式锁之Zookeeper实现机制
Zookeeper,是为我们熟知的一款开源的分布式应用程序协调服务,很多动物命名的项目都是通过Zookeeper做集群管理的,也被大家认可为动物园管理员,Zookeeper可以做很多事情,集群管理,数据发布/订阅,配置维护,服务注册与发现,分布式同步,分布式队列,还有就是本文要去探索的分布式锁功能。 基于Zookeeper去实现分布式锁,有着他天生的优势,这一点,我们...原创 2019-01-25 18:03:57 · 214 阅读 · 0 评论 -
万剑归宗,redisson的百锁解构(上)
万剑归宗,剑至高境,剑谱上虽是普通招式,可是练至大成,以指为剑,剑气破苍穹。redisson框架也是如此,通过lua脚本实现了可重入非公平锁,公平锁,非公平锁,联合锁,信号量,读写锁,countDownLatch,甚至redlock算法也巧妙实现。今天这篇文章,就以我个人的理解去解构这些锁的实现,redisson封装的很好,类的结构很清晰,所有加锁解锁的逻辑都写在了lua脚本中,对于我们使用者而言...原创 2019-01-16 21:33:23 · 1068 阅读 · 0 评论 -
画分布式锁之"通文馆圣主"Curator的"十三太保"(上)
上文,我们已经基于图文分析了zookeeper实现分布式锁的基本原理,【画分布式锁之Zookeeper实现机制 】,文末也引出了zookeeper一款强大的客户端框架--Curator,看它的命名也看出了一些乐趣,翻译成中文,叫做馆长,zookeeper当年是因为管理了很多动物命名的分布式组件,才命名成动物管理员,而Curator是馆长,是动物园的园长,这也体现除了改客户端框架的强大,...原创 2019-01-28 21:39:07 · 427 阅读 · 0 评论