分布式锁的学习
文章平均质量分 95
分布式锁的学习
performer丶
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式锁-Zookeeper实现
1:Zookeeper基本概念Zookeeper 存储数据的结构是一个树1:分为持久节点 和 瞬时节点2:持久节点你的会话结束或者是 Zookeeper 重启,这些节点呢都是不会消失的,它会一直存在不会消失的,除非你手动删除这些节点3:瞬时节点(有序),Zookeeper 重启或者连接Zookeeper 会话断了,那么瞬时节点呢就会自动的去消失。瞬时节点不可以再去拥有子节点,如果当前节点是瞬时节点,那么子节点是不可能会存在的,为什么呢,因为如果你自动消失了,你这个瞬时节点的子节点是不是也会跟原创 2020-10-24 17:13:58 · 226 阅读 · 0 评论 -
分布式锁-Redis实现
1:Redis 分布式锁的原理获取锁的Redis命令:set resource_name my_random_value NX PX 30000resource_name 资源名称,可根据不同业务区分不同的锁my_random_value 随机值,每个线程的随机值都不同,用于释放锁时的校验,要保证每一个线程的随机值都不相同。为什么对值有这么高德要求?主要是为了校验值一样了才可以删除锁NX:key 不存在时设置成功,key 存在则设置不成功。我们就是用这个命令实现分布式锁,主要..原创 2020-10-03 08:46:59 · 1443 阅读 · 0 评论 -
分布式锁-数据库实现
1:for update 的原理select 检索出的数据, for update 加上了一把锁,其他的人是不能修改这个数据的,也不能在给这个数据加锁。其他线程可以检索出来,但是我在用 for update 再给这些数据加锁是加不上的,因为这个锁呢,已经被前一个线程给锁住了。其他人是不能给它加锁的,在加锁的期间,其他人也不能修改这些数据。因为update 更新数据呢,是要获取这些数据的锁的2:用native 测for update先将当前页面的数据库自动提交先关掉为什么要先关掉呢?你现在原创 2020-10-01 17:10:05 · 1079 阅读 · 0 评论 -
Java中锁的解决方案
1、:乐观锁 与 悲观锁乐观锁与悲观锁应该是每个开发人员最先接触的两种锁。应用场景主要是在更新数据的时候,更新数据这个场景也是使用锁的非常主要的场景之一。更新数据的主要流程如下:检索出要更新的数据,供操作人员查看; 操作人员更改需要修改的值 点击保存,更新数据这个流程看起来很简单,但是我们用多线程的思维去考虑,这也应该算是一种互联网思维吧,就会发现其中隐藏的问题。我们具体看一下A检索出数据 B检索出数据 B修改了数据 A修改数据,系统会修改成功吗?1:乐观锁当然了,原创 2020-06-27 16:10:07 · 444 阅读 · 0 评论 -
2:什么是单体应用锁?什么是分布式锁?
1、:什么是单体应用锁?单体应用锁指的是只能在 一个JVM 进程内有效的锁。我们把这种锁叫做单体应用锁1、:单体应用锁的局限性1、:谈到局限性,先要讲讲互联网系统架构的演进过程在互联网系统发展之初,系统比较简单,消耗资源小,用户访问量也比较少,我们只部署一个Tomcat应用就可以满足需求。系统架构图如下:一个 Tomcat 可以看作是一个JVM进程,当大量请求并发到系统时,所有的请求都落在这唯一的一个Tomcat上,如果某些请求方法是需要加锁的,比如:秒杀扣减库存,是可以满足需求的,但原创 2020-06-26 18:45:51 · 1360 阅读 · 0 评论 -
1:初始锁这个概念
1:、什么是锁?锁在JAVA中是一个非常重要的概念,尤其是在当今的互联网时代,高并发的场景下,更是离不开锁。那么锁到底是什么呢?在计算机科学中,锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问进行限制。锁旨在强制实施互斥排他、并发控制策略。咱们举一个生活的例子来更好的理解锁:大家都去过超市买东西,如果你随身带了包呢,要放到储物柜里。咱们把这个例子再极端一下,假如柜子只有一个,现在同时来了3个人A,B,C,都要往这个柜子里放东西。这个场景就构造了一个多线程,多原创 2020-06-26 17:17:22 · 449 阅读 · 0 评论
分享