验证码功能实现笔记 一、整体流程 ┌──────────┐ 1. GET /api/service/captcha ┌──────────┐ 2. 路由转发(白名单免鉴权) ┌──────────────┐ │ Login.vue │ ──────────────────────────────► │ 网关 │ ──────────────────… 阅读更多
购物车 → 生成订单 → 支付宝沙箱支付 笔记 〇、全链路总览 【阶段一】商品详情页点"加入购物车" ProductDetail.addCart() ──POST /api/cart──► 网关(验JWT,透传用户头) ──► mall-cart CartController.add └► CartServiceImpl.add:有则数量累加,无则… 阅读更多
秒杀功能完整实现笔记 模块:mall-order(主体)、mall-product(真实库存)、mall-api(Feign 契约)、mall-gateway(路由)、ui-app(前端页面)技术:Redis + Lua、RabbitMQ、OpenFeign、MyBatis-Plus 乐观锁、雪花 ID、JWT目标:高并发抢购下不超卖、不少卖、不压… 阅读更多
微服务实现说明 本文档基于本项目真实代码,讲解这套微服务架构从模块划分、服务注册与发现、网关路由、服务间调用到鉴权的完整实现流程。每个机制都有对应的代码片段。 一、项目形态:按业务拆成多个独立 Spring Boot 微服务 根 pom.xml 用 Maven 多模块把项目拆成 12 个模块,其中 8 个业务服务 + 1 个网关 = 9 个可独立启… 阅读更多
定时任务:清理 OSS 中未被使用的图片 本模块运行在 mall-service(微服务 service-service,端口 8084)。它用一个 Spring 定时任务,周期性对比"阿里云 OSS 里实际存在的图片"和"数据库中真正被引用的图片",把数据库中已不引用的图片从 OSS 删除,避免垃圾图片占用存储。 一、整体流程 数据库(produ… 阅读更多
多线程与线程在项目中的使用笔记 先说结论:业务代码里没有手写 new Thread、没有 @Async、没有自定义线程池、没有 CompletableFuture/parallelStream。项目的"多线程"主要是框架托管的线程模型 + 两处 ThreadLocal。本文按真实代码梳理:ThreadLocal、Tomcat 请求线程池、@Sche… 阅读更多
分布式锁笔记(Redisson + 注解式 AOP) 本项目原本没有任何分布式锁(全局 grep 无 Redisson、无 tryLock、无 setIfAbsent)。本次按生产标准引入 Redisson,并封装成一个 @DistributedLock 注解,由 AOP 切面统一加锁/解锁,并落地到「重复下单、支付并发、加购读改写」三个真实场景。… 阅读更多
事务(@Transactional)笔记 本项目数据写入绝大多数是单表 CRUD(MyBatis-Plus 继承方法,自带连接级原子性),真正需要本地数据库事务的是一次请求内对同库多张表做写入的地方,共 3 处:普通下单、秒杀建单、加购读改写。跨服务的库存扣减刻意不用分布式事务,而用「乐观锁 + 失败补偿回补」实现最终一致。本文基于真实代码梳理。 … 阅读更多
Redis 缓存与 Spring Cache 开发指南 一、Redis 缓存概述 Redis 是 C 语言开发的开源高性能 key-value 内存数据库,在系统中通常作为关系型数据库的缓存补充:Redis 承担热点数据的高速读取,MySQL 承担数据持久化落盘。 1. 适合放入缓存的数据 即时性、数据一致性要求不高的数据访问量大、更新频率低(读多… 阅读更多
Redis 缓存笔记(最新现状) 本项目把 Redis 同时用于三类用途:① Spring Cache 声明式缓存(商品、分类)、② RedisTemplate 手动 TTL 存储(验证码)、③ 高并发原子操作(秒杀 Lua、分布式锁)。本文按"基础设施 → 各类用法 → 缓存三大问题 → 一致性治理 → 本次完善记录"整理,均对应当前代码。历史:… 阅读更多