当前位置:网站首页>分布式锁以及实现方式三种
分布式锁以及实现方式三种
2022-07-31 03:06:00 【1.01】
一、什么是分布式锁
分布式锁是控制分布式系统之间同步访问共享资源的一种方式,为了防止分布式系统中的多个进程之间相互干扰,需要对不同机器的这些进程进行协调。
如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,这个时候,便需要使用到分布式锁。
分布式锁应该具备条件:
- 在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;
- 高可用的获取锁与释放锁;
- 高性能的获取锁与释放锁;
- 具备可重入特性;
- 具备锁失效机制,防止死锁;
- 具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。
二、实现分布式锁的方式
| 实现方式 | 链接 |
|---|---|
| 基于数据库实现分布式锁 | 点击查看 |
| 基于缓存(Redis)实现分布式锁 | 点击查看 |
| 基于Zookeeper实现分布式锁原理 | 点击查看 |
从理解的难易程度角度(从低到高)
数据库 > 缓存 > Zookeeper
从实现的复杂性角度(从低到高)
Zookeeper >= 缓存 > 数据库
从性能角度(从高到低)
缓存 > Zookeeper >= 数据库
从可靠性角度(从高到低)
Zookeeper > 缓存 > 数据库
边栏推荐
猜你喜欢

LeetCode中等题之分数加减运算

学习DAVID数据库(1)

Problems that need to be solved in distributed system architecture

CorelDRAW2022 streamlined Asia Pacific new features in detail

软件积累 -- 截图软件ScreenToGif

Several common errors when using MP

Detailed explanation of TCP (3)

10. Redis implements likes (Set) and obtains the total number of likes

mycat的主从关系 垂直分库 水平分表 以及mycat分片联表查询的配置详解(mysql5.7系列)

Is interprofessional examination difficult?Low success rate of "going ashore"?Please accept this practical guide!
随机推荐
10、Redis实现点赞(Set)和获取总点赞数
【C语言】表达式求值的一般方法
Installation of mysql5.7.37 under CentOS7 [perfect solution]
StringJoiner in detail
Modbus on AT32 MCUs
JetPack组件Databinding
Mysql 45讲学习笔记(二十四)MYSQL主从一致
Map.Entry理解和应用
IDEA 注释报红解决
YOLOV5学习笔记(三)——网络模块详解
【C语言】进制转换一般方法
12 Disk related commands
YOLOV5学习笔记(二)——环境安装+运行+训练
How to build a private yum source
一份高质量的测试用例如何养成?
原子操作 CAS
TCP详解(三)
Annotation usage meaning
JS function this context runtime syntax parentheses array IIFE timer delay self.backup context call apply
Office automation case: how to automatically generate period data?