当前位置: 首页 > news >正文

分布式锁的使用场景是什么?有哪些实现方法?

在单体架构中,多个线程都是属于同一个进程的,所以在线程并发执行遇到资源竞争时,可以利用ReentrantLock、synchronized等技术来作为锁,来控制共享资源的使用。

而在分布式架构中,多个线程是可能处于不同进程中的,而这些线程并发执行遇到资源竞争时,利用ReentrantLock、synchronized等技术是没办法来控制多个进程中的线程的,所以需要分布式锁,意思就是,需要一个分布式锁生成器,分布式系统中的应用程序都可以来使用这个生成器所提供的锁,从而达到多个进程中的线程使用同一把锁。
目前主流的分布式锁的实现方案有两种:

1.zookeeper: 利用的是zookeeper的临时节点、顺序节点、watch机制来实现的,zookeeper分布式锁的特点是高一致性,因为zookeeper保证的是CP,所以由它实现的分布式锁更可靠,不会出现混乱

2.redis: 利用redis的setnx、lua脚本、消费订阅等机制来实现的,recs分布式锁的特点是高可用,因为redis保证的是AP,所以由它实现的分布式锁可能不可靠,不稳定(一旦redis中的数据出现了不一致),可能会出现多个客户端同时加到锁的情况
 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Qt创建列表,通过外部按钮控制列表的选中下移、上移以及左侧图标的显现
  • VSCODE 下 openocd Jlink 的配置笔记
  • huawei USG6001v1学习----NAT和智能选路
  • web学习笔记(八十二)uniapp
  • Cisco 路由重发布 —— 实现路由信息在不同路由域间的传递
  • 24暑假算法刷题 | Day18 | LeetCode 530. 二叉搜索树的最小绝对差,501. 二叉搜索树中的众数,236. 二叉树的最近公共祖先
  • 【Vue3】工程创建及目录说明
  • SSM之Mybatis
  • 收银系统源码-千呼新零售收银视频介绍
  • Fiddler 导出请求为curl格式
  • 动漫风格动漫404网站维护HTML源码
  • 【HarmonyOS】HarmonyOS NEXT学习日记:五、交互与状态管理
  • Python 更换 pip 源详细指南
  • MySQL源码安装
  • 系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统(OAS)-解读
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • crontab执行失败的多种原因
  • github从入门到放弃(1)
  • HTTP中GET与POST的区别 99%的错误认识
  • Java,console输出实时的转向GUI textbox
  • JavaScript类型识别
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Redis学习笔记 - pipline(流水线、管道)
  • 讲清楚之javascript作用域
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 你不可错过的前端面试题(一)
  • 如何解决微信端直接跳WAP端
  • 正则表达式小结
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​​​【收录 Hello 算法】9.4 小结
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #Linux(make工具和makefile文件以及makefile语法)
  • #QT(TCP网络编程-服务端)
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (八)c52学习之旅-中断实验
  • (笔试题)合法字符串
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (理论篇)httpmoudle和httphandler一览
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (未解决)macOS matplotlib 中文是方框
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原創) 未来三学期想要修的课 (日記)
  • ****三次握手和四次挥手
  • .net framework 4.8 开发windows系统服务
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET IoC 容器(三)Autofac
  • .NET Standard 支持的 .NET Framework 和 .NET Core