技术科普|深入理解分布式锁的原理与实现 part 1
导读:「分布式锁」技术科普系列,由 NebulaGraph 存储负责人四王整理自己的“学习笔记”而成。在单体应用中我们通过锁实现共享资源访问,而在分布式系统中,则通过分布式锁解决。NebulaGraph 作为一款分布式图数据库,邀请大家一起学习分布式系统架构中的分布式锁~ 重点速览: 为什么需要分布式锁? 分布式锁能够保证什么? 常见的分布式锁实现方式有哪些? 本文首发于「NebulaGraph 技术社区」,更多资讯请访问「NebulaGraph 官网」 一、Distributed Lock 在单机多线程环境下,我们可以通过以下方式进行同步: 互斥锁 mutex 信号量 semaphore 用户态互斥锁 futex 那如果在分布式环境下,需要处理资源抢占问题时,我们经常想到的就是分布式锁和一致性共识协议。事实上,分布式锁就是一个简化版的共识协议,我们可以从一个分布式锁需要保证的几个性质来理解这一点: Mutual exclusion: 同一个时刻只有一个客户端持有锁 Deadlock free: 不会因为出现死锁,进而导致有客户端始终无法获取到锁的情况 Fault tolerance:...



