解决什么问题:别让重复请求把业务逻辑搞乱
这套资料讲的是业务幂等性,也就是在分布式服务里,怎么挡住用户连点、网络超时引发的重复提交,以及服务间重试导致的重复扣款、重复下单。它不是泛泛讲概念,而是把常见手段拆成可落地的实现:Token 机制、防重表、MySQL 乐观锁、Zookeeper 分布式锁。每条线索都对应一个具体故障场景,比如库存被多次扣减、重试把订单状态打乱、并发下同步锁失效。如果你做过支付、订单、库存相关模块,却一直靠加判断临时挡,这套东西能帮你把零散经验梳理成可复用的架构判断。
适合什么基础、建议先看哪几块
适合写过 Spring Boot、能独立写接口和调数据库的后端,至少看过一次乐观锁和分布式锁的概念。纯前端或刚学完框架基础的人会觉得吃力。建议先看幂等性介绍和业务场景引入,弄清“天然幂等”和“需要强制保证”的区别;再看 Token 机制的自定义业务流程实现,理解防重 Token 怎么签发和校验;之后挑 MySQL 乐观锁那条线,重点看版本号控制和“服务调用超时库存多次扣减”的演示,这是最容易踩坑的地方;最后看 Zookeeper 分布式锁的实现机制,作为跨服务场景的对照。防重表和 Select 结合 Insert 方案可以放在中间穿插,不必一次啃完。
学完能独立做什么、资料怎么配合练习
学完后,你应该能独立评估一个接口是否需要幂等、选哪种方案,并在代码里实现:给下单或支付接口加 Token 防重、用乐观锁挡并发库存扣减、用分布式锁协调跨服务重试。练习时别只看演示,自己搭一个最小 Spring Boot 工程,造一个会重复提交的支付接口,分别用 Token、乐观锁、分布式锁各实现一遍,再模拟服务超时重试,观察库存和订单状态是否稳定。资料里的错误效果和失效演示尤其要看,它们告诉你“为什么写法不对会失效”,比直接给正确答案更有价值。把每个方案的触发条件和失败表现记成自己的判断清单,下次遇到新接口,先判断场景再选方案,就不会乱套。
业务幂等性技术架构体系
课程目录
* 第一章 企业级解决方案之-业务幂等性/
* 业务幂等性解决方案/
* 01_幂等性介绍
* 02_业务场景引入
* 03_HTTP语义幂等
* 04_接口幂等-方案介绍
* 05_Token机制-基于自定义业务流程实现
* 06_Token机制-基于自定义注解实现
* 07_服务幂等-防重表
* 08_服务幂等-Select结合Insert方案
* 09_服务幂等-MySQL乐观锁-错误效果&Synchronized失效演示
* 10-服务幂等-MySQL乐观锁-基于版本号控制
* 11_MySQL乐观锁-基于条件实现
* 12_服务幂等-MySQL乐观锁-服务间重试演示
* 13_服务幂等-MySQL乐观锁-服务调用超时库存多次扣减
* 14_服务幂等-MySQL乐观锁-乐观锁解决服务间重试保证幂等
* 15_服务幂等-Zookeeper分布式锁-实现机制
* 16_服务幂等-Zookeeper分布式锁-低效锁思想实现
* 17_服务幂等-Zookeeper分布式锁-高效锁思想和实现
* 18_服务幂等-Zookeeper分布式锁-结合业务使用zk锁的执行流程分析
* 19_服务幂等-Zookeeper分布式锁-结合业务使用zk锁实现
* 20_服务幂等-Redis分布式锁-单节点Redis实现分布式锁-加锁
* 21_服务幂等-Redis分布式锁-单节点Redis实现分布式锁-解锁
* 22_服务幂等-Redis分布式锁-单机Redis加锁的问题剖析
* 23_服务幂等-Redisson分布式锁-简单锁实现
* 24_服务幂等-Redisson分布式锁-加锁源码分析
* 25_服务幂等-Redisson分布式锁-解锁源码分析
* 26_服务幂等-Redisson分布式锁-看门狗机制
* 27_服务幂等-Redis单点服务器故障解决-RedLock红锁算法的实现思想
* 28_服务幂等-Redssion分布式锁-基于红锁思想完成锁实现
* 29_服务幂等-Redisson分布式锁-红锁实现源码分析
* 30_消息幂等-RabittMQ消息重试机制演示
* 31_消息幂等-保证消息幂等解决方案-介绍
* 32_消息幂等-保证消息幂等解决方案-实现
* 33_消息幂等-消息缓冲区介绍






