news 2026/9/23 16:59:38

第十六课实战:分布式锁与限流设计 —— 从原理到可跑 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/9/20 21:17:42

Qwen1.5-1.8B-Chat-GPTQ-Int4实战手册:Chainlit前端定制化开发与API集成

Qwen1.5-1.8B-Chat-GPTQ-Int4实战手册:Chainlit前端定制化开发与API集成 1. 模型简介与部署准备 Qwen1.5-1.8B-Chat-GPTQ-Int4是基于Transformer架构的轻量级对话模型,采用4位量化技术(GPTQ-Int4)显著降低显存占用。该模型具备以下技术特点&#xff1a…

作者头像 李华
网站建设 2026/9/20 21:22:17

DeepSeek-OCR-2教育行业应用:试卷自动批改系统实现

DeepSeek-OCR-2教育行业应用:试卷自动批改系统实现 1. 教育场景中的真实痛点:为什么老师还在手批试卷? 每次考试结束,办公室里总能看到老师们伏案的身影。红笔在试卷上划出一道道痕迹,计算分数、写评语、统计错题分布…

作者头像 李华
网站建设 2026/9/20 21:18:21

超越Hello World:用ZYNQ串口构建物联网数据中继站

超越Hello World:用ZYNQ串口构建物联网数据中继站 在嵌入式开发领域,"Hello World"往往是开发者接触新平台的第一个实验。但对于ZYNQ这样的异构计算平台来说,仅停留在串口打印显然无法充分发挥其潜力。本文将带您突破传统示例的局…

作者头像 李华
网站建设 2026/9/20 15:14:45

虚拟音频路由2024极简攻略:从入门到精通的实战指南

虚拟音频路由2024极简攻略:从入门到精通的实战指南 【免费下载链接】Soundflower MacOS system extension that allows applications to pass audio to other applications. 项目地址: https://gitcode.com/gh_mirrors/sou/Soundflower 在macOS系统中实现高效…

作者头像 李华
网站建设 2026/9/20 2:00:45

Mirage Flow在Vue3项目中的集成实战:前端AI应用开发

Mirage Flow在Vue3项目中的集成实战:前端AI应用开发 想在前端项目里加点“智能”吗?比如让电商网站能自动推荐商品,或者让内容平台帮你生成摘要?以前这活儿得后端配合,现在有了像Mirage Flow这样的大模型,…

作者头像 李华