您现在的位置是:首页 > 编程 > 

如何1分钟实现一个分布式锁?(第26讲)

2025-07-28 05:41:22
如何1分钟实现一个分布式锁?(第26讲) 《架构师之路:架构设计中的100个知识点》 26.互斥的内核,分布式锁什么时候要做互斥?多个访问方,对同一个资源进行操作,要做互斥。实现互斥的核心是什么?需要利用一个多个访问方【同时】能够访问到的【锁资源】来实施互斥的。案例1:同一个进程内,多个线程,怎么做互斥?典型场景:生产者消费者对同一个queue进行操作。如上图所示,在同一个进程空间内,设定一个所有

如何1分钟实现一个分布式锁?(第26讲)

《架构师之路:架构设计中的100个知识点》 26.互斥的内核,分布式锁

什么时候要做互斥?

多个访问方,对同一个资源进行操作,要做互斥。

实现互斥的核心是什么?

需要利用一个多个访问方【同时】能够访问到的【锁资源】来实施互斥的。

案例1:同一个进程内,多个线程,怎么做互斥?

典型场景:

生产者消费者对同一个queue进行操作。

如上图所示,在同一个进程空间内,设定一个所有线程都能够访问到的flag,或者锁变量,就能实施互斥。

大家一起抢锁变量,抢到的线程操作队列,操作完之后释放锁变量。

案例2:同一台机器上,多个进程,怎么做互斥?

典型场景:

手机上多个APP对同一个日志文件进行写入。

如上图所示,在同一台机器上,设定一个所有进程都能够访问到的锁资源,就能实施互斥。更具体来说,机器上文件系统里inode锁。

大家一起抢inode锁,抢到的进程获得文件的操作权,操作完之后释放inode锁。

案例:多台机器的分布式环境下,多个进程,怎么做互斥?

典型场景:

多个微服务对同一个资源进行操作。

如上图所示,在分布式环境下,设定一个所有微服务都能够访问到的锁资源,就能实施互斥。

比如,可以setnx一个redis中key值,哪个微服务设置成功,就获得资源的操作权,操作完之后释放key值,让其他微服务再来抢。这,就是一个最简单的分布式锁。

总结

1. 如何实施互斥:需要利用一个多个访问方【同时】能够访问到的【锁资源】来实施;

2. 多个线程互斥,可以利用进程空间里的锁资源;

. 同一台机器上的多进程互斥,可以利用机器上的锁资源;

4. 分布式环境下的多进程互斥,可以利用布式环境下的锁资源;

知其然,知其所以然。

思路比结论更重要。

补充阅读材料:

《用redis实现分布式锁》

/

资料来源,redis。

本文参与 腾讯云自媒体同步曝光计划,分享自。原始发表:2024-12-20,如有侵权请联系 cloudcommunity@tencent 删除分布式微服务分布式锁进程线程

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1225374.html

相关标签:无
上传时间: 2025-07-25 23:42:24
留言与评论(共有 7 条评论)
本站网友 恐尖症
3分钟前 发表
案例1:同一个进程内
本站网友 河池房屋出租
21分钟前 发表
分享自
本站网友 十年生死两茫茫
20分钟前 发表
哪个微服务设置成功
本站网友 支票是什么
29分钟前 发表
如上图所示
本站网友 蓝田瑶族风情园
3分钟前 发表
可以利用进程空间里的锁资源;. 同一台机器上的多进程互斥
本站网友 博远
9分钟前 发表
抢到的线程操作队列