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

为什么要用分布式锁

单应用中,如果要确保多线程修改同一个资源的安全性  加synchronized就可以了

但是性能不高

而mybatis-plus的乐观锁就可以很好的解决这类问题

但是这样的锁机制,只在单应用中有效

试想,在分布式下,有没有可能出现多个应用中的线程同时去修改同一个数据资源的并发问题

例如A B两个应用的线程   

A应用的线程和B应用的线程同时去修改数据库中的某条数据

例如 

数据库有条数据  id为1   count为500   现在A应用需要给这条数据的count加20   B应用需要给这条数据的count加30

A应用线程查出来  id为1的这条数据  现在的count是500  

B应用线程查出来  id为1的这条数据  现在的count也是500

那么这种情况下  去update的时候就会出现  数据与真实不一致的情况

在分布式环境下,单纯依赖单应用中的锁机制(如 synchronized)和乐观锁无法解决跨实例的并

发修改问题。要确保多个应用实例中线程对同一数据资源的修改安全性,通常需要使用分布式锁或

者分布式事务。

分布式锁可以确保在多个实例之间,对共享资源的并发访问是安全的。

http://www.lryc.cn/news/416877.html

相关文章:

  • python游戏开发之五子棋游戏制作
  • 文件上传绕过最新版安全狗
  • 常用API_2:应用程序编程接口:ArrayList
  • 【Linux操作系统】进程的基本概念(PCB对象)详解
  • 曙光宁畅中科可控所有服务器机型出厂默认IPMI用户密码
  • mysql查线上数据注意数据库的隔离级别
  • 【专业解析】移动硬盘能识别却打不开:数据恢复实战指南
  • 系统 hap
  • 【Material-UI】按钮与第三方路由库的集成详解
  • Python获取Excel内容
  • python实现小游戏随机猜数
  • YOLOv5与YOLOv8 训练准备工作(不包含环境搭建)
  • 字节跳动发Seed-TTS语音合成模型,可模仿任意人的声音,效果逼真
  • 微信小程序教程011-3:京西购物商城实战之Home页实现
  • 使用 Manim 创建一个二维坐标平面【NumberPlane】
  • Android.mk(TODO)
  • WPF datagrid 选中某一行后让第一列的checkbox选中
  • 洛谷 P1347 排序(福建省历届夏令营)(图论:拓扑排序)
  • Redis 缓存击穿、穿透、雪崩
  • 使用开源RustDesk部署远程控制服务
  • Coco-LIC基于ubuntu的vscode进行断点调试
  • 【Web】从TFCCTF-FUNNY浅析PHPCGI命令行注入漏洞利用
  • 对比一下在 OpenCV 和 AE 中如何实现常用效果 [精]
  • docker安装及使用
  • HTML前端面试基础(一)
  • [Git][多人协作][下]详细讲解
  • MySQL笔记(七):索引
  • JS 原型和原型链
  • 【无标题】图像增强技术:直方图均衡化、拉普拉斯算子、对数变换与伽马变换
  • 自动化专业英语