社区
Web 开发
帖子详情
分布式部署的场景下,synchroinzed和Lock这样的锁的使用范围
奥特小飞侠
2020-07-03 11:49:23
分布式部署的场景下(包括微服务架构、单体架构),sychronized和Lock这样的锁是不是都失效了,还是保证sychroinzed和Lock锁的作用范围都在同一进程中保护一个共享变量的前提下,还是可以使用的?
...全文
485
3
打赏
收藏
分布式部署的场景下,synchroinzed和Lock这样的锁的使用范围
分布式部署的场景下(包括微服务架构、单体架构),sychronized和Lock这样的锁是不是都失效了,还是保证sychroinzed和Lock锁的作用范围都在同一进程中保护一个共享变量的前提下,还是可以使用的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
阿萨德由
2020-07-03
打赏
举报
回复
这两个只能在单服务内有效。
苏颙
2020-07-03
打赏
举报
回复
1楼说得对。你可能需要的是分布式锁。
Forevermark993
2020-07-03
打赏
举报
回复
都已经是分布式了,肯定不是在同一个jvm进程中,肯定会失效
通俗讲解
分布式
锁
:
场景
和
使用
方法
前言 对于
锁
大家肯定不会陌生,比如
sync
hronized 关键字 和 Reentrant
Lock
可重入
锁
,一般我们用其在多线程环境中控制对资源的并发访问。但是随着业务的发展,
分布式
的概念逐渐出现在我们系统中,我们在开发的过程中经常需要进行多个系统之间的交互,于是上面的加
锁
方法就会失去作用。于是在
分布式
锁
就自然而然的诞生了,接下来我们来聊一聊
分布式
锁
实现的几种方式。
分布式
锁
的
使用
场景
效率性:
使用
分布式
锁
可以避免不同节点重复相同的工作。 正确性:
分布式
锁
可以避免破坏正确性的发生,如
Redis实现
分布式
锁
及其应用
场景
Redis实现
分布式
锁
的原理是通过在Redis中创建一个key-value对,其中key为
锁
的名称,value为
锁
的值。当一个进程或线程需要获取
锁
时,它会向Redis发送一个SETNX命令,如果该命令返回1,则表示获取
锁
成功,否则获取
锁
失败。当一个用户下单时,它会尝试获取库存
锁
,如果获取成功,则可以继续下单,否则需要等待其他用户完成下单后再尝试获取
锁
。当一个任务开始执行时,它会尝试获取任务
锁
,如果获取成功,则可以执行任务,否则跳过任务。当任务执行完成后,会释放
锁
,其他任务就可以获取
锁
并执行。
redis
分布式
锁
两种应用
场景
“
分布式
锁
”是用来解决
分布式
应用中“并发冲突”的一种常用手段,实现方式一般有基于zookeeper及基于redis二种。这里我们分析下基于redis得
场景
和实现。具体到业务
场景
中,我们要考虑二种情况:一、抢不到
锁
的请求,允许丢弃(即:忽略)比如:一些不是很重要的
场景
,比如“监控数据持续上报”,某一篇文章的“已读/未读”标识位更新,对于同一个id,如果并发的请求同时到达,只要有一个请求处理成功,就算成功。用活动图表示如下:二、并发请求,不论哪一条都必须要处理的
场景
(即:不允许丢数据)比如:一个订单,客户正在前
普通
锁
和
分布式
锁
1、普通
锁
和
分布式
锁
为什么有了普通
锁
还需要
分布式
锁
,当然是因为普通
锁
和
分布式
锁
各有各的
使用
场景
。普通针对多线程的
场景
,一般可以
sync
hronized和
lock
。而
分布式
针对的是
分布式
的环境,系统
部署
在多个机器中,也会出现并发问题,并且
场景
是多个进程之间的并发问题。
使用
内存标记无法解决这个问题,因为内存是线程共享的。 2、普通
锁
主要有两种
sync
hronized和
lock
。下面...
分布式
基础——几种常见的
分布式
锁
分布式
锁
在单机
场景
下,可以
使用
语言的内置
锁
来实现进程同步,如
sync
hronized、
Lock
等。但是在
分布式
场景
下,需要同步的进程可能位于不同的节点上,那么就需要
使用
分布式
锁
。
分布式
锁
:是控制
分布式
系统不同进程共同访问共享资源的一种
锁
的实现。 数据库的唯一索引 向表中插入一条唯一索引的记录,此时相当于加
锁
,释放
锁
时删除这条记录。唯一索引可以保证该记录只被插入一次,那么就可以用这个记录是否存在来判断是否处于
锁
定状态。 存在以下几个问题:
锁
没有失效时间,解
锁
失败的话其它进程无法再获得该
锁
; 只能是非
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章