news 2026/4/3 6:12:58

第十六课实战:分布式锁与限流设计 —— 从原理到可跑 Demo

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第十六课实战:分布式锁与限流设计 —— 从原理到可跑 Demo

学完分布式锁和限流,如果没有实战,你只是“知道”。
跑过一遍 Demo,你才是“会用”。

本文目标:
Spring Boot + Redis做一个最小实战,验证三件事:

  1. 没有锁会并发冲突
  2. 有锁但不校验 UUID 会误删
  3. 正确锁(UUID + 原子解锁)才安全
  4. 再加一层限流,形成“门禁系统”

一、实验场景设计

我们模拟一个经典业务:扣库存

特点:

  • 并发高
  • 容易超卖
  • 非常适合验证锁

资源:

商品ID:sku=1001 初始库存:1

二、实验环境

学习阶段一台电脑就够:

  • 本机 Redis(或 Docker Redis)

  • 两个 SpringBoot 实例

  • localhost:8080
  • localhost:8081

这两个实例共用一个 Redis,
就等价于“两台服务器”。

三、第一步:没有锁的情况

接口逻辑(伪代码):

if stock > 0: stock--

并发请求时可能出现:

库存=1 A读取=1 B读取=1 A扣减=0 B扣减=0

结果:超卖

四、第二步:加锁但错误解锁

加锁:

SET lock:sku:1001 uuid NX PX 30000

解锁:

DEL lock:sku:1001

风险场景:

  • A 执行慢
  • 锁过期
  • B 拿锁
  • A 执行完直接 DEL
  • 把 B 的锁删了 ❌

五、第三步:正确分布式锁

加锁

SET lock:sku:1001 uuid NX PX 30000

关键点:

  • NX:不存在才设置
  • PX:过期时间
  • uuid:锁身份

解锁(Lua 原子)

逻辑:

如果当前 value == 我的 uuid 删除 否则 不删除

意义:

  • 防误删
  • 防并发插队

六、加入限流 —— 门口再加一道闸

为什么要限流?

锁解决的是“同一资源冲突”,
限流解决的是“人太多把系统打爆”。

最简单限流思路

每秒最多 5 次请求:

key = limit:api:stock count++ 过期1秒 >5 拒绝

七、最终完整流程

请求进来 ↓ 限流(挡住洪水) ↓ 分布式锁(保护资源) ↓ 业务执行 ↓ UUID 原子解锁

这就是一个最小的并发门禁系统

八、你通过实战能学到什么?

能力价值
Redis 锁机制企业级并发思维
UUID 解锁防误删
Lua 原子操作工程严谨性
限流设计系统保护意识
多实例模拟

分布式思维

九、面试一句话总结

分布式锁用 Redis SET NX PX 实现,加 UUID 防误删,解锁用 Lua 原子校验;
限流用计数器或令牌桶算法保护系统,两者结合形成并发门禁机制。

十、一句话收尾

锁解决“抢同一资源”,
限流解决“来太多人”。
两者结合,你才真正具备并发系统设计能力。

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

Ollama部署translategemma-27b-it:轻量级翻译模型

Ollama部署translategemma-27b-it:轻量级翻译模型 1. 为什么需要一个“能看图翻译”的轻量模型? 你有没有遇到过这样的场景: 在跨境电商平台看到一张商品说明书图片,全是日文,但手机拍照翻译App识别不准、漏字严重&…

作者头像 李华
网站建设 2026/3/27 5:40:43

亚洲美女-造相Z-Turbo新手教程:轻松生成专业级图片

亚洲美女-造相Z-Turbo新手教程:轻松生成专业级图片 你是否试过输入“亚洲美女、长发、旗袍、江南园林”,却得到一张脸型失真、背景杂乱、服饰比例失调的图?不是模型不行,而是还没摸清它的表达习惯。今天这篇教程不讲参数、不堆术…

作者头像 李华
网站建设 2026/4/2 0:52:06

零基础玩转LLaVA-v1.6-7b:图文对话AI保姆级教程

零基础玩转LLaVA-v1.6-7b:图文对话AI保姆级教程 你是否想过,只需上传一张照片,就能让AI像朋友一样跟你聊图中内容?不用写代码、不装复杂环境、不调参数——打开网页就能问“这张图里有什么?”“表格里的数据能总结吗&…

作者头像 李华
网站建设 2026/3/31 18:31:50

FLUX.2-Klein-9B在教育演示中的应用:前后对比图生成

FLUX.2-Klein-9B在教育演示中的应用:前后对比图生成 1. 教育场景中的图像教学痛点 你有没有试过给学生讲图像编辑原理,却只能靠PPT上几张静态截图?或者演示“换背景”“改颜色”“加文字”这些基础操作时,学生一脸茫然——不是听…

作者头像 李华
网站建设 2026/3/28 21:37:06

Revelation光影革命:3大技术突破重塑游戏视觉体验

Revelation光影革命:3大技术突破重塑游戏视觉体验 【免费下载链接】Revelation A realistic shaderpack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/re/Revelation 如何用中端配置实现电影级渲染效果? 一、问题诊断…

作者头像 李华
网站建设 2026/4/3 3:07:18

Qwen3-4B Instruct-2507应用落地:制造业设备故障报告智能归因分析

Qwen3-4B Instruct-2507应用落地:制造业设备故障报告智能归因分析 1. 引言:当设备故障报告遇上AI 想象一下这个场景:一家大型制造工厂的生产线突然停机了。工程师们紧急抢修,几个小时后设备恢复了运转。接下来,工程师…

作者头像 李华