分布式锁解决什么,先看清痛点。很多团队在微服务架构落地后,最头疼的不是单点性能,而是数据一致性。当并发请求来自不同机器,本地锁失效,业务出现超卖、重复扣款或状态错乱。这类问题在面试中常被追问到底层实现原理,但在实际工作中,它往往因为场景复杂而难以排查。这门课聚焦于高并发场景下的状态控制,旨在解决跨节点资源互斥的核心难题,避免你在处理订单、库存或缓存更新时陷入逻辑死结。
适合人群与基础门槛。你不需要是架构师,但必须具备扎实的 Java 后端开发基础,熟悉 Spring Boot 生态,并对 TCP/IP 协议、JVM 内存模型有基本认知。如果你是刚入门的初级开发,直接上手分布式锁容易陷入语法细节而忽略设计思想,建议先补全线程池、ReentrantLock 等单机锁知识。如果你有实际项目经验,遇到过由网络抖动导致的锁获取失败,或正在准备大厂后端面试,这套内容对你极具针对性。它不教你如何部署中间件,而是深挖锁的实现机制与选型逻辑。
建议的学习路径与重点。不要试图一次性看完所有视频,而是分模块攻克。首先聚焦于基于 Redis 的锁实现,这是目前互联网企业使用最广泛的方案,重点理解 SETNX 命令的原子性、看门狗机制以及 Lua 脚本在解决竞态条件中的作用。其次,深入研究基于 ZooKeeper 或 Etcd 的临时节点锁,理解其顺序节点特性在强一致性场景下的优势。最后,结合具体业务案例,对比不同锁方案在延迟、吞吐量和可靠性上的权衡。学完这部分,你应能独立设计一个支持可重入、公平性和自动续期的分布式锁组件。
学完能独立做什么,以及资料配合练习。掌握这门课的核心价值在于你能独立重构现有的加锁逻辑。例如,将原本存在竞态条件的购物车扣减逻辑,改造为使用 Redis 红锁或 ZK 锁保障原子性;或者在面试中清晰阐述分布式锁的死锁预防、异常释放及性能损耗计算。资料包中的代码示例并非让你直接复制粘贴,而是作为调试参考。建议你搭建本地 Redis 集群和 ZK 环境,手动模拟网络分区、节点宕机等极端情况,观察锁的行为变化。通过这种“理论推导 + 故障演练”的方式,你才能将知识转化为解决生产事故的能力,而不仅仅是背下几个 API。这种基于真实场景的实操,才是区分“知道概念”和“能用好分布式锁”的关键分界线。
课程介绍
目前网络上的分布式锁视频和资料不是以偏概全蜻蜓点水,就是不够全面和深入;不是偏向于理论,就是直接上代码;或是作为其他专题中的一部分,没有系统性不够精细化。本套视频全面深入接地气,教程中很多内容全网还没有参考资料,属于独家秘技。
课程目录
分布式.png 2022-8-31 15:20 上传 课程介绍: 目前网络上的分布式锁视频和资料不是以偏概全蜻蜓点水,就是不够全面和深入;不是偏向于理论,就是直接上代码;或是作为其他专题中的一部分,没有系统性不够精细化。本套视频全面深入接地气,教程中很多内容全网还没有参考资料,属于独家秘技。 课程目录: 01.课程简介 02.技术要求 03.建一个减库存的简单案例工程 04.用JVM本地锁解决减库存时的超卖问题 05.造代码减MySQL中的库存 06.用JVM本地锁解决MySQL超卖 07.种情况导致JVM本地锁失效之多例模式 08.种情况导致JVM本地锁失效之事务 09.种情况导致JVM本地锁失效之集群部署 10.MySQL锁之使用一个更新的SQL语句完成判断及更新 11.使用一个SQL语句时的优缺点 12.悲观锁的范围 13.MySQL悲观锁之使用select for update减库存 14.MySQL悲观锁之select for update存在的问题 16.使用MySQL乐观锁解决超卖 17.测试MySQL乐观锁 18.MySQL乐观锁存在的问题 19.四种锁小结 20.演示Redis中的超卖现象 21.Redis乐观锁相关指令 22.使用Redis乐观锁解决超卖 23.Redis乐观锁问题 24.为什么需要分布式锁 25.Redis实现分布式锁分析 26.基于Redis实现一个简单的分布式锁 27.把递归重试改成循环重试 28.给锁添加过期时间防止死锁发生 29.通过UUID防误删 31.使用Lua脚本解决防误删的原子性问题 32.解读ReentrantLock的底层原理 33.分析可重入锁使用的Redis数据模型 34.可重入锁之加锁的Lua脚本 35.可重入锁之解锁的Lua脚本 36.可重入锁代码实现 37.测试可重入性 38.自动续期思路分析 39.代码实现自动续期 40.使用Redis实现分布式锁小结 41.RedLock红锁算法介绍 42.RedLock算法介绍下 43.Redisson介绍 43.Redisson入门程序 44.Redisson常用配置 45.Redisson分布式可重入锁的底层原理 46.测试Redisson的自动续期及可重入 47.Redisson之FairLock公平锁 48.Redisson之RReadWriteLock读写锁 49.Redisson之RSemaphore信号量 50.Redisson之RCountDownLatch倒计数器 51.Redisson小结 51.ZooKeeper简介 52.ZooKeeper的下载安装 53.ZooKeeper基本指令 54.ZooKeeper四种节点 55.Znode节点的事件监听 56.Java客户端之获取及关闭链接 57.Java客户端之四种节点的新增 59.Java客户端之节点查询 60.Java客户端之更新和删除 61.Java客户端之节点监听事件 62.ZooKeeper分布式锁的实现思路 63.ZooKeeper分布式锁的基本实现上 64.ZooKeeper分布式锁的基本实现下 65.测试ZooKeeper分布式锁的基本实现 66.ZooKeeper分布式锁优化之阻塞锁思路分析 67.ZooKeeper分布式锁优化之阻塞锁代码实现 68.测试阻塞锁 69.ZooKeeper分布式锁之可重入锁 70.对比Redis和ZooKeeper分布式锁 71.Curator介绍及整合 72.Curator之InterProcessMutex可重入锁 73.测试InterProcessMutex的可重入性 74.InterProcessMutex底层原理之锁的初始化 75.InterProcessMutex底层原理之加解锁 76.Curator之InterProcessSemaphoreMutex不可重入锁 77.Curator之InterProcessReadWriteLock可重入的读写锁 78.Curator之InterProcessMultiLock联锁 79.Curator之InterProcessSemaphoreV2信号量 80.Curator之共享计数器 81.基于MySQL实现分布式锁的思路分析 82.代码实现MySQL的分布式锁 83.分析MySQL分布式锁存在的问题及解决方案 84.分布式锁总结





