news 2026/6/15 18:54:25

19.分布式锁

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
19.分布式锁

在一个分布式系统中,涉及到多个节点访问同一个公共资源的情况,此时就需要通过锁来做互斥控制,避免出现类似于“线程安全”问题。
之前学过的锁本质都只能在一个进程内部生效,分布式系统是有很多进程的(每个服务器都是独立的进程),之前的锁是无法实现进程间的制约。

1.分布式锁场景

两个客户端同时去查询,都查到了余票为1,都执行--操作,最终使得票数剩余-1,这就导致超卖了;

所谓的分布式锁,本质也是一个/一组单独的服务端程序,给其他服务器提供“加锁”这样的服务,给其他服务器提供“加锁”这样的服务(Redis是一种典型实现分布式锁的方案,不是唯一一种);

买票服务器,在进行买票操作过程中,需要先加锁(往redis上设置一个特殊的key-value,完成上述买票操作之后,删除);

setnx可以实现加锁效果,针对解锁,使用del命令完成;
问题:进程内部的锁,进程退了,锁就没了;但是分布式的锁,如果持有锁的服务器掉电,会导致锁无法释放,其他服务器就无法获取到锁了?

解决方法:给set的key设置过期时间,一旦时间到,key就会被自动删除;
需要用:set ex nx这种来设置,如果用setnx+expire,这是无法保证原子的;

问题:如果一个服务器加锁,另一个给它解了?

解决:引入校验机制
1)给服务器编号,每个服务器有一个自己的身份标识;解锁时先查询编号,相同才del;
2)加锁时,设置key-value,key要对应针对哪个资源加锁,value存储服务器编号;

问题:加入了校验机制后,必须要两步才能完成,一步查询、一步del,但这两步操作不能保证是原子的。


虽然看起来这两个服务器执行两次del没有问题,但是如果有第3个服务器,在B执行del前就加锁了,就会把这个锁解了;
解决:引入lua脚本,用lua写一些逻辑,上传到redis服务器上,然后让客户端来控制redis执行上述脚本,redis执行lua的过程,也是原子的(redis官方文档:lua是事务的替代方案);

2.过期时间续约问题

问题:加锁时,设置过期时间多少合适?
设置多了,服务器挂了,很久才释放;
设置少了,服务器还没操作完就自动解锁了;
解决:动态续约,例如:初始设置1s,等到剩余300ms,再把时间续成1s,从此往复;
因此服务器这边需要一个专门的线程来负责续约,这个线程被称为“看门狗”(watch dog);

3.redis挂了

解决:采用主从+哨兵,进行加锁,把key设置到主节点上,主节点挂了,哨兵自动把从节点升级成主节点,进一步保证锁可用;
衍生问题:主从节点数据同步是存在延时的,主节点先收到set还没同步呢就挂了,从节点就没锁了;

解决:redlock算法,采用多组(主从+哨兵);
加锁就按照一定顺序,针对这些组redis加锁,写入key成功超过一半,视为加锁成功;
解锁时,上述主节点都进行一遍解锁;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:47:06

基于数据驱动的暖通空调系统故障检测诊断与症状链智能推断

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 成品或定制,查看文章底部微信二维码 (1) 楼宇自动化系统数据的智能标记与语义关系推断方法 随着物联网技术在智能…

作者头像 李华
网站建设 2026/6/15 16:18:36

5 款 AI 写论文哪个好?实测后发现宏智树 AI 才是学术党终极福音

作为深耕论文写作科普的教育测评博主,每年毕业季都要帮粉丝拆解各类论文难题。近期收到最多的提问就是 “AI 写论文哪个靠谱”,为此我专门实测了当前主流的 5 款真实 AI 论文工具 —— 宏智树 AI、WPS AI、Grammarly GO、豆包学术版、墨灵 AI&#xff0c…

作者头像 李华
网站建设 2026/6/15 13:27:22

3.5 Kubernetes集群高可用部署:多Master节点架构与负载均衡配置

3.5 Kubernetes集群高可用部署:多Master节点架构与负载均衡配置 引言 生产环境的Kubernetes集群需要高可用性,通过多Master节点和负载均衡可以实现集群的高可用。本文将详细介绍Kubernetes高可用集群的部署方法和最佳实践。 一、高可用架构 1.1 架构设计 ┌──────…

作者头像 李华
网站建设 2026/6/15 15:51:09

解锁论文写作新宇宙:书匠策AI的六大“超能力”全揭秘

毕业季的钟声敲响,无数学生正对着电脑屏幕抓耳挠腮——选题撞车、逻辑混乱、查重不过、格式抓狂……这些“论文噩梦”是否让你彻夜难眠?别慌!今天我们要揭秘一款能让你从“学术菜鸟”秒变“科研达人”的秘密武器——书匠策AI(官网…

作者头像 李华
网站建设 2026/6/14 22:59:38

解锁论文“超能力”:书匠策AI的六大毕业论文黑科技全揭秘

对于每一位正在为毕业论文抓耳挠腮的学子来说,论文写作就像是一场没有硝烟的战争,选题迷茫、逻辑混乱、内容表达不专业、格式调整繁琐、查重降重压力大……这些问题如同绊脚石,让学术之路充满坎坷。别担心,今天要给大家介绍一位论…

作者头像 李华
网站建设 2026/6/15 18:08:37

10亿参数刷新OCR记录:LightOnOCR-2如何以小博大?

最近,法国AI公司LightOn在文档理解领域投下了一枚重磅炸弹——他们推出的LightOnOCR-2-1B模型仅凭10亿参数,就在权威OCR评测基准OlmOCR-Bench上击败了参数量大它9倍的竞争对手,登顶SOTA宝座。更令人振奋的是,这个突破性的模型已经…

作者头像 李华