当前位置:网站首页>分布式锁以及实现方式三种
分布式锁以及实现方式三种
2022-07-31 03:06:00 【1.01】
一、什么是分布式锁
分布式锁是控制分布式系统之间同步访问共享资源的一种方式,为了防止分布式系统中的多个进程之间相互干扰,需要对不同机器的这些进程进行协调。
如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,这个时候,便需要使用到分布式锁。
分布式锁应该具备条件:
- 在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;
- 高可用的获取锁与释放锁;
- 高性能的获取锁与释放锁;
- 具备可重入特性;
- 具备锁失效机制,防止死锁;
- 具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。
二、实现分布式锁的方式
| 实现方式 | 链接 |
|---|---|
| 基于数据库实现分布式锁 | 点击查看 |
| 基于缓存(Redis)实现分布式锁 | 点击查看 |
| 基于Zookeeper实现分布式锁原理 | 点击查看 |
从理解的难易程度角度(从低到高)
数据库 > 缓存 > Zookeeper
从实现的复杂性角度(从低到高)
Zookeeper >= 缓存 > 数据库
从性能角度(从高到低)
缓存 > Zookeeper >= 数据库
从可靠性角度(从高到低)
Zookeeper > 缓存 > 数据库
边栏推荐
- SQL注入 Less46(order by后的注入+rand()布尔盲注)
- 公司官网建站笔记(六):域名进行公安备案并将备案号显示在网页底部
- CloudCompare & PCL calculate the degree of overlap between two point clouds
- Discussion on Service Commitment of Class Objects under Multithreading
- php 网站的多语言设置(IP地址区分国内国外)
- Mysql 45讲学习笔记(二十四)MYSQL主从一致
- 10、Redis实现点赞(Set)和获取总点赞数
- 【C语言】三子棋(经典解法+一览图)
- Addition and Subtraction of Scores in LeetCode Medium Questions
- JetPack组件Databinding
猜你喜欢
随机推荐
10. Redis implements likes (Set) and obtains the total number of likes
CorelDRAW2022精简亚太新增功能详细介绍
YOLOV5 study notes (2) - environment installation + operation + training
8、统一处理异常(控制器通知@ControllerAdvice全局配置类、@ExceptionHandler统一处理异常)
7、私信列表
Problems that need to be solved in distributed system architecture
测试中的误报和漏报同样的值得反复修正
10、Redis实现点赞(Set)和获取总点赞数
[Android] Room - Alternative to SQLite
YOLOV5学习笔记(三)——网络模块详解
[Compilation principle] Lexical analysis program design principle and implementation
6、显示评论和回复
Modbus on AT32 MCU
共模电感的仿真应用来了,满满的干货送给大家
The distance value between two arrays of LeetCode simple questions
How to build a private yum source
Mysql 45讲学习笔记(二十五)MYSQL保证高可用
Mycat's master-slave relationship, vertical sub-database, horizontal sub-table, and detailed configuration of mycat fragmented table query (mysql5.7 series)
Local area network computer hardware information collection tool
Map.Entry理解和应用









