当前位置:网站首页>分布式锁以及实现方式三种
分布式锁以及实现方式三种
2022-07-31 03:06:00 【1.01】
一、什么是分布式锁
分布式锁是控制分布式系统之间同步访问共享资源的一种方式,为了防止分布式系统中的多个进程之间相互干扰,需要对不同机器的这些进程进行协调。
如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,这个时候,便需要使用到分布式锁。
分布式锁应该具备条件:
- 在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;
- 高可用的获取锁与释放锁;
- 高性能的获取锁与释放锁;
- 具备可重入特性;
- 具备锁失效机制,防止死锁;
- 具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。
二、实现分布式锁的方式
实现方式 | 链接 |
---|---|
基于数据库实现分布式锁 | 点击查看 |
基于缓存(Redis)实现分布式锁 | 点击查看 |
基于Zookeeper实现分布式锁原理 | 点击查看 |
从理解的难易程度角度(从低到高)
数据库 > 缓存 > Zookeeper
从实现的复杂性角度(从低到高)
Zookeeper >= 缓存 > 数据库
从性能角度(从高到低)
缓存 > Zookeeper >= 数据库
从可靠性角度(从高到低)
Zookeeper > 缓存 > 数据库
边栏推荐
猜你喜欢
12 Disk related commands
Chapter 9 SVM Practice
字体压缩神器font-spider的使用
Mysql 45讲学习笔记(二十三)MYSQL怎么保证数据不丢
【编译原理】词法分析程序设计原理与实现
What is a distributed lock?Three ways of implementing distributed lock
Problems that need to be solved in distributed system architecture
【C语言】表达式求值的一般方法
关于 mysql8.0数据库中主键位id,使用replace插入id为0时,实际id插入后自增导致数据重复插入 的解决方法
4. Sensitive word filtering (prefix tree)
随机推荐
【C语言】求两个整数m和n的最大公因数和最小公倍数之和一般方法,经典解法
Chapter 9 SVM Practice
7. List of private messages
品牌广告投放平台的中台化应用与实践
Getting Started with CefSharp - winform
How to build a private yum source
刚出道“一战成名”,安全、舒适一个不落
想从手工测试转岗自动化测试,需要学习哪些技能?
选好冒烟测试用例,为进入QA的制品包把好第一道关
[Android] Room - Alternative to SQLite
10、Redis实现点赞(Set)和获取总点赞数
TCP/IP four-layer model
[Compilation principle] Lexical analysis program design principle and implementation
C# remote debugging
Annotation usage meaning
mycat的主从关系 垂直分库 水平分表 以及mycat分片联表查询的配置详解(mysql5.7系列)
10 Permission introduction
WebSocket Session为null
16、热帖排行
CloudCompare&PCL 计算两个点云之间的重叠度