分布式技术之单机锁

如你所知,随着分布式技术的不断发展以及广泛运用,分布式系统中的不同节点如何访问共享资源成了一个棘手问题,分布式锁是目前一个比较通用的方案。

我们将分上下两篇文章来讲解分布式锁实现原理、技术选型。通过经典案例来透析分布式锁的前世今生。希望对大家有借鉴作用。

单机锁

单机环境中,由于共享资源自身无法提供互斥能力。因此,为了防止多线程/多进程对共享资源的同时读写访问造成数据的破坏,就需要一个第三方提供的互斥的机制,一般往往是内核或者提供互斥能力的类库。

如下图二所示,进程首先从内核/类库获取一把互斥锁,拿到锁的进程就可以排他性的访问共享资源;演化到分布式环境,我们就需要一个提供同样功能的分布式服务,不同的机器通过该服务获取一把锁,获取到锁的机器就可以排他性的访问共享资源,这样的服务我们统称为分布式锁服务,锁也就叫分布式锁。

由此,我们抽象一下分布式锁的概念,首先分布式锁需要是一个资源,这个资源能够提供并发控制,并输出一个排他性的状态,也就是:锁 = 资源 + 并发控制以我们熟悉的单机锁为例:Spinlock(自旋锁) = BOOL + CAS (乐观锁)Mutex (互斥锁) = BOOL + CAS + 通知 (悲观锁)Spinlock和Mutex所持有的锁是一个互斥量,这个互斥量通常被实现为一个整数值,通过原子操作来控制它的状态。

相关推荐
国科安芯1 天前
低轨卫星姿态与轨道控制系统中高可靠MCU的选型研究——基于AS32S601的抗辐照性能试验数据分析
分布式·科技·单片机·嵌入式硬件·系统架构
谢白羽1 天前
SGLang源码剖析-2-sglang双层体系架构全景
分布式·架构·llm·vllm·sglang
霸道流氓气质1 天前
分布式锁 — 概念、原理与实践
分布式
杰佛史彦明 本王是暴君1 天前
分布式日志收集系统: Facebook Scribe
分布式·facebook
JHC0000001 天前
基于 DrissionPage 与 Xvfb 的分布式无头爬虫架构
分布式·kafka
梦云莓铃 脚后跟法1 天前
结合领域驱动设计的SOA分布式软件架构
分布式
zcmodeltech2 天前
火电厂模型多设备时序控制系统设计:基于STM32与Modbus RTU的燃煤-燃机全流程联动方案
分布式·stm32·单片机·嵌入式硬件·物联网
ACP广源盛139246256732 天前
DeepSeek‑V4‑Flash 公测@ACP#昇腾 950 国产算力组合落地,国产 PCIe 交换芯片 IX9104 有哪些硬件机会
大数据·数据库·人工智能·分布式·单片机·嵌入式硬件·microsoft
玉鸯2 天前
多 Agent 并行时如何保证状态一致性?
分布式·python·agent
CodeHackerBhx2 天前
Spring Boot 4 防重复提交:从接口幂等到 Redis 分布式锁的完整实践
java·数据库·spring boot·redis·分布式