首页/新闻资讯/正文详情

分布式锁怎么实现?

发布时间:2026/11/15 0:28:36 来源:云帆数科 栏目:资讯中心
分布式锁怎么实现?
分布式锁JVM内锁只能同时锁住同一个JVM内线程;而分布式场景下多服务实例需要跨进程、跨节点互斥就是分布式锁。一、Redis实现方案1SETNXEXPIRE;方案2set命令原子加过期// SET key value NX EX 30 原子命令 Boolean ok redisTemplate.opsForValue().setIfAbsent(lock:order:1001, uuid, 30, TimeUnit.SECONDS); if (ok) { try { // 业务逻辑 } finally { // 释放锁必须校验持有者防止删别人的锁 String script if redis.call(get,KEYS[1]) ARGV[1] then return redis.call(del,KEYS[1]) else return 0 end ; redisTemplate.execute(new DefaultRedisScript(script, Long.class), List.of(lock:order:1001), uuid); } }方案3RedissonRedisson的底层就是Redis具有 自动续期看门狗机制可重入锁公平锁、读写锁、锁超时、lua脚本。RLock lock redissonClient.getLock(lock:order:1001); try { // tryLock(等待时间, 锁持有时间, 时间单位) boolean acquire lock.tryLock(10, 30, TimeUnit.SECONDS); if (acquire) { // 业务代码 } } finally { if (lock.isHeldByCurrentThread()) { lock.unlock(); } }如果不指定leaseTimeRedisson默认30s后端线程每10s续期业务没跑完不会自动释放。二、Zookeeper实现分布式锁利用zk临时有序节点 Watcher1.抢锁在/lock/order下创建临时有序节点lock-000000012.判断自己是不是最小节点-拿到锁3.不是最小节点监听前一个节点等待释放通知4.断开连接临时节点自动删除不会死锁优点是天然支持监听不会死锁缺点是zk性能比较弱适合并发不高的场景。InterProcessMutex lock new InterProcessMutex(client, /lock/order); try { if (lock.acquire(10, TimeUnit.SECONDS)) { // 业务 } } finally { lock.release(); }三、数据库实现分布式锁乐观锁/悲观锁悲观锁select ... for update-- 注意必须索引命中否则会表锁InnoDB事务内生效 select * from distribute_lock where lock_key order:1001 for update;局限如下必须事务集群下数据库单点问题长时间不提交事务会连接占用只适合低并发乐观锁版本号机制无阻塞update goods set stock stock -1, version version 1 where id1 and version #{oldVersion};根据update返回行数判断是否抢到锁没有阻塞失败直接充实适合读多写少。

相关推荐

npm常用命令以及运行环境检测,前端必学
npm常用命令以及运行环境检测,前端必学

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 2:36:57

房屋租赁系统(SpringBoot Mybatis Mysql)
房屋租赁系统(SpringBoot Mybatis Mysql)

包含管理员端,房东端,租客端。功能包含整租,合租,新闻资讯,反馈,功能包含用户管理,房屋管理,订单管理,以及合同管理等等。。。。。 下载链接:基于SpringBoot的… · 2026/11/3 18:24:07

Docker 安装与简单使用(例子为docker python环境)
Docker 安装与简单使用(例子为docker python环境)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/11 20:16:56

大冶市电工证办理怎么考官方回应实操考试心里没底怕挂科
大冶市电工证办理怎么考官方回应实操考试心里没底怕挂科

大冶市电工证办理怎么考官方回应实操考试心里没底怕挂科 你是不是正准备报考大冶市电工证,但心里一直担心实操考试会不会挂科?别急,官方回应来了,咱们一起来看看怎么准备才能一次通过。 一、实操考试心里没底怕挂科,官方怎么说?… · 2026/11/15 23:12:06

海宁电工证怎么考全流程办理指南:工地太忙根本没时间复习考试?上岗必备全攻略
海宁电工证怎么考全流程办理指南:工地太忙根本没时间复习考试?上岗必备全攻略

海宁电工证怎么考全流程办理指南:工地太忙根本没时间复习考试?上岗必备全攻略 工地太忙根本没时间复习考试?别急,海宁电工证怎么考这事儿,其实你只要掌握好节奏,完全来得及。作为一名从信阳浉河区转岗过来的电工,我深知很多一线工人在备考路上的困惑。… · 2026/11/15 23:12:06

司素兵电工证怎么考才不白交培训费?上岗必备的电工证到底值不值?
司素兵电工证怎么考才不白交培训费?上岗必备的电工证到底值不值?

司素兵电工证怎么考才不白交培训费?上岗必备的电工证到底值不值? 怕考不过白交培训费?很多周口应届工程类毕业生在报考【司素兵电工证】时都遇到过这个问题。尤其是刚出校门的你,面对各种培训机构的宣传,心里没底、怕踩坑,怕花了钱还拿不到证,耽误找工… · 2026/11/15 23:12:06

大二报考低压电工证难吗良心建议来帮你避坑
大二报考低压电工证难吗良心建议来帮你避坑

大二报考低压电工证难吗良心建议来帮你避坑 怕考不过白交培训费?大二学生想报考低压电工证,确实有不少人担心自己专业不对口、经验不足,担心过不了关,钱白花不说,还耽误时间。其实,只要你提前了解流程、掌握方法,完全可以在不影响学业的前提下顺利完成… · 2026/11/15 23:12:06

周口在哪考电工证啊怎么考更省事 上岗必备全攻略
周口在哪考电工证啊怎么考更省事 上岗必备全攻略

周口在哪考电工证啊怎么考更省事 上岗必备全攻略 之前考的证在外省能不能转过来?这个问题我听太多人问了,特别是那些从外地回来或者在外地工作过的人,最怕的就是证书不能用。周口这边现在电工证是 上岗必备… · 2026/11/15 23:12:06

电工证六年复审条件 2026河南最新政策怎么应对工地太忙根本没时间复习考试
电工证六年复审条件 2026河南最新政策怎么应对工地太忙根本没时间复习考试

电工证六年复审条件 2026河南最新政策怎么应对工地太忙根本没时间复习考试 工地太忙根本没时间复习考试,这是很多电工在复审前的真实写照。特别是2026年河南最新政策出台后,复审流程和标准也有了新的变化,很多电工在准备时感到无所适从。如果你是… · 2026/11/15 23:11:04

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 1:51:20

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 4:02:19

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 3:02:05

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码