SmartLive 项目驱动学习复盘指南
这份文档不是通用八股清单,而是把 SmartLive 的核心链路、技术主题和面试表达方式串成一条更容易执行的复盘路径。
更适合这样使用它:
- 先挑一条链路看懂业务流程
- 再反推这条链路涉及的技术点
- 最后回到代码和文档里验证自己的理解
开始前先看:这份复盘指南建立在什么基线上
为了避免这份指南变成“泛学 Java、泛学中间件”的清单,先把当前仓库里最值得作为复盘起点的硬数据放在最前面:
16个业务模块,19个服务应用831个 Java 文件,71个 Controller18个 FeignClient,30个 RabbitMQ 监听器,26个@XxlJob处理器53张核心表,覆盖8个数据域73张链路图、102张截图、11篇专题页223次 Git 提交,已经形成“代码实现 + 图示讲解 + 面试讲法”三层资料
这意味着你后面复盘时,不应该再把 SmartLive 当成“技术点拼盘”,而应该当成一个已经具备:
- 业务闭环
- 多中间件协同
- 异步消息与补偿兜底
- 文档资产与答辩材料
四层结构的完整项目来看。
1. 先说结论
结合当前仓库里的 README、链路图和核心模块,这个项目已经不是单纯的“会用很多技术”,而是形成了比较完整的 业务闭环 + 中间件协同 + 链路图体系。
因此更推荐的复盘方式不是:
- Java 学一点
- Spring 学一点
- Redis 学一点
- MQ 学一点
- AI 学一点
这样平铺着学。
更适合的方式是:
以项目核心链路为主线,反推八股;以高频基础八股为骨架,再回到项目里验证。
也就是说:
项目链路是“场景”,八股是“答案”,算法是“门槛”。
2. 根据当前文档与代码结构,这个项目最有复盘价值的能力点
从当前文档和模块划分来看,这个项目最强的不是单个模块,而是下面这几类能力:
1. 交易与履约闭环
你已经把这部分梳理得很完整了,包括:
- 秒杀抢购
- 普通下单
- 统一支付
- 订单超时取消
- 主动取消 / 退款补偿
- 核销、销量、积分奖励
这部分非常适合支撑:
- Redis
- RabbitMQ
- MySQL
- 幂等
- 延迟队列
- 最终一致性
- 支付与退款状态流转
这是需要重点吃透的一组。
2. Redis 分层缓存与高性能读链路
这部分是你项目里非常强的亮点,包括:
- Redis 分层缓存设计
- ZSet 列表 / Feed / 热榜
- 详情页缓存
- 计数缓存
- 状态缓存
- 热点 key、逻辑过期、空值缓存、互斥锁重建
这部分非常适合支撑:
- Redis 数据结构
- 缓存穿透 / 击穿 / 雪崩
- 缓存一致性
- 滚动分页
- Pipeline
- 性能优化
这是最值得拿来讲“做过性能优化”的一组。
3. 社交 Feed / 热榜 / 双轨同步
这部分也非常有含金量,包括:
- Feed 推送与滚动读取
- 互动数据回刷与双轨同步
SyncDataServiceImpl中like / comment / star / review / follow / fans六路CompletableFuture并发同步- 热榜增量维护与全量重建
- 首页热门面板与热门博客读取链路
- 首页热门面板算分与热榜维护链路
这部分非常适合支撑:
- Redis ZSet
- 热度模型
- 异步回刷
- MySQL 批量落库
- 热榜维护
- 定时任务
- 聚合读接口
- CompletableFuture 并发聚合
这是和普通 CRUD 项目拉开差距的重要部分。
4. 审核、搜索与向量同步
这部分是你项目的“工程化 + AI 化”亮点,包括:
用户 / 店铺 / 博客 / 商品 / 评论 / 评价六类审核链- 发布审核与搜索 / 向量同步
- 审核中心责任链与业务回写
- 搜索读链路与热词沉淀
- 历史图里的搜索与向量库同步
这部分非常适合支撑:
- 责任链模式
- MQ 异步解耦
- Elasticsearch
- 倒排索引
- 热词统计
- ES / Milvus 最终一致性
- 审核任务回写
这是很适合面试展开的一组,但优先级略低于交易和缓存。
5. AI 与经营分析
这部分是项目亮点,但不是你的主战场。
包括:
- AI 对话链路
AgentRouter + LlmIntentClassifier意图路由- 店铺经营分析
- AI 经营建议
- 差评关键词抽取
- RAG / 向量检索 / SSE / 意图路由
- Milvus 不可用时降级到
SimpleVectorStore
这部分适合做加分项。
6. XXL-JOB 调度体系
你现在已经把定时任务总览和子图都整理出来了,这部分很好。
它能支撑:
26个@XxlJob处理器覆盖预热、校准、回刷、重建、提醒和过期兜底- 秒杀预热与库存校准
- 热榜增量维护与重建
- 互动数据回刷
- 订单生命周期兜底
这部分非常适合回答:
- 为什么有 MQ 还要定时任务
- 定时任务和延迟队列怎么分工
- 如何做兜底和对账
3. 把链路、八股与源码入口串起来
这部分的目标只有一个:
把“我知道这条链路很重要”进一步变成“我知道它对应哪些八股、该先看哪些源码入口”。
1. 链路 -> 八股映射总表
| 项目链路 | 优先补的八股 | 为什么值得先打透 |
|---|---|---|
| 秒杀抢购全链路 | Redis、Lua、RabbitMQ、幂等、延迟队列、最终一致性 | 这是你最强的高并发交易链路,能同时覆盖缓存、消息和补偿 |
| 下单 / 统一支付 / 退款补偿 | MySQL 事务、状态流转、幂等、补偿、回调处理 | 适合讲完整业务闭环,也最容易被追问支付状态边界 |
| Redis 分层缓存链路 | Redis 数据结构、缓存穿透/击穿/雪崩、逻辑过期、分布式锁、Pipeline | 这是你项目里最能体现“性能优化能力”的部分 |
| Feed 推送与互动同步 | Redis ZSet、滚动分页、批量回刷、CompletableFuture、线程池 | 这是和普通 CRUD 项目拉开差距的社交读写链路,尤其适合讲六路并发同步 |
| 审核责任链与搜索双写 | 责任链模式、MQ 异步解耦、ES / Milvus 最终一致性 | 适合讲工程化治理,而不是单纯写接口 |
| 搜索与热词沉淀 | Elasticsearch、倒排索引、热词统计、多策略排序、LBS | 很适合回答“为什么不用 MySQL like”,也能带出检索与推荐分层 |
| RabbitMQ 消息可靠链路 | Confirm、ACK / NACK、幂等消费、死信队列、延迟队列 | 适合把你项目里的异步闭环一次讲透 |
| 热榜洗牌与全量重建 | Redis ZSet、热度模型、XXL-JOB、时间衰减、批量重建 | 这是项目里很硬的推荐/排行设计亮点 |
| AI 路由与 RAG 生成 | SSE、Spring AI、向量检索、意图路由、Function Calling | 更适合作为加分项,在主链路讲完后补充,也能顺带讲 Milvus 降级兜底 |
2. 关键链路源码入口索引
不要一上来就把整条链路的所有类都打开。
更高效的方式是:先看入口 Controller,再看核心 Service,然后看 Listener / Job / Strategy。
| 链路 | 第一批先看的源码入口 | 建议的阅读顺序 |
|---|---|---|
| 秒杀抢购全链路 | ProductController、SeckillPurchaseStrategy、OrderServiceImpl、ProductListener、ProductSeckillJobHandler | 先看秒杀入口,再看 Lua 预扣与落单,再看 MQ 扣库和定时预热/回收 |
| 下单 / 支付 / 退款补偿 | OrderController、OrderServiceImpl、PayServiceImpl、PaymentListener、OrderListener | 先看下单,再看支付受理与回调,最后看超时取消和退款补偿 |
| Feed / 互动 / 热榜 | BlogServiceImpl、FollowServiceImpl、SyncDataServiceImpl、HotRankJobHandler、FullRebuildJobHandler | 先看发布/关注触发,再看六路并发回刷与落库,最后看热榜增量与全量重建 |
| 审核 / 搜索 / 向量同步 | AuditServiceImpl、SearchController、SearchServiceImpl、MilvusSyncListener | 先看审核任务如何流转,再看搜索读取,最后看 ES / Milvus 副本收敛 |
| AI 路由与 RAG | UserAiChatController、UserAiMessageServiceImpl、AgentRouter、LlmIntentClassifier、ShopRagService | 先看对话入口,再看意图路由和工具调用,最后看向量检索与 SSE 输出 |
3. 复盘时的最小动作
每次看一条链路,尽量都完成这 4 个动作:
- 写出这条链路解决什么业务问题。
- 列出它对应的 3 到 5 个核心八股。
- 找到 3 个关键类:入口类、核心类、兜底类。
- 用自己的话讲一遍“如果不用这个设计,会出什么问题”。
4. 建议优先补强什么
第一优先级:必须打牢
这几类是你现在最该花时间的。
1. Java 基础 + 并发
重点复习:
- 集合:ArrayList、LinkedList、HashMap、ConcurrentHashMap
- 并发:synchronized、Lock、volatile、ThreadLocal
- 线程池:核心参数、拒绝策略、适用场景
- CompletableFuture
- JVM:内存结构、GC、类加载
为什么优先:
因为这是所有后端面试的骨架,也是你项目里很多点的底座,比如并发同步、线程池隔离、IM、异步聚合。
2. MySQL
重点复习:
- 索引、最左匹配、回表、覆盖索引
- 事务、隔离级别、MVCC
- 锁机制
- 大分页优化
- SQL 优化、慢查询
- 批量更新
- 数据一致性
为什么优先:
你的订单、钱包、积分、互动回刷、销量同步、搜索同步都离不开数据库。
3. Redis
重点复习:
- String、Hash、List、Set、ZSet
- ZSet 为什么适合热榜、Feed、滚动分页
- 缓存穿透、击穿、雪崩
- 逻辑过期、空值缓存、互斥锁
- Redis 分布式锁
- Lua 脚本
- Pipeline
- Redis 与 MySQL 的一致性
为什么优先:
这是你项目最强的亮点之一,必须打成“可展开回答”的状态。
4. RabbitMQ
重点复习:
- 交换机、队列、路由键
- direct/topic/fanout
- 生产者确认
- 消费者 ACK / NACK
- 消息可靠性
- 重复消费与幂等
- 延迟队列 / 死信队列
- 补偿机制
为什么优先:
你的秒杀、订单取消、退款补偿、审核、系统通知、IM 推送、索引同步都在用 MQ。
5. Spring / Spring Boot / Spring Cloud
重点复习:
- IOC、AOP、Bean 生命周期
- Spring Boot 自动配置
- Feign 调用
- Gateway 过滤器
- Nacos 配置与注册发现
- Sentinel 限流
- Seata 基本思想
为什么优先:
这是你项目的基座,面试不会不问。
6. 算法
重点复习:
- 数组 / 哈希 / 双指针
- 链表
- 二叉树
- 二分
- 堆 / TopK
- BFS / DFS
- 回溯基础
为什么优先:
算法是暑期实习的门槛,项目再强也不能完全代替算法。
第二优先级:结合项目重点突破
1. 搜索与 ES
重点复习:
- 倒排索引
- 分词器
- keyword / text
- multi_match
- 高亮
- 排序
- 搜索与数据库 like 的区别
- ES 与 MySQL 最终一致性
2. 设计模式
重点复习:
- 策略模式
- 工厂模式
- 模板方法
- 责任链模式
- 结合
Like / Follow / Review / Comment / Resource / HotRank / Star这 7 类策略工厂去理解,不要只背定义
要求不是背定义,而是要能回答:
- 为什么用
- 在项目里哪里用
- 不用会怎样
- 有没有过度设计
3. 定时任务 / XXL-JOB
重点复习:
- 为什么需要 XXL-JOB
- 定时任务适合处理什么问题
- 与 MQ 延迟消息的边界
- 兜底与补偿
- 批处理与定时重建
4. 网关与鉴权
重点复习:
- 登录态
- JWT / Token
- Gateway 请求头透传
- 统一鉴权
- 过滤器执行位置
- 基础安全设计
第三优先级:作为加分项准备
这部分要会,但不建议现在投入最多时间。
1. AI / Spring AI / RAG / Milvus
重点掌握:
- RAG 基本流程
- 向量库作用
- SSE 为什么适合流式对话
AgentRouter / LlmIntentClassifier这类意图路由- 向量同步
- Milvus 不可用时为什么要有
SimpleVectorStore降级 - AI 在业务里怎么落地
2. Netty / IM
重点掌握:
- 长连接
- 心跳保活
- 消息可靠投递
- ACK / 重试
- 在线状态管理
3. MinIO / 文件服务
了解上传链路、旧文件替换、头像刷新缓存即可。
5. 你现在最值得主打的 9 条项目链路
这 9 条建议你优先打磨成“能讲 3 分钟,也能被追问 10 分钟”的状态。
1. 秒杀抢购全链路
要讲清:
- 为什么 Redis 预扣库存
- 为什么用 Lua
- 为什么要一人一单
- 为什么异步落单
- 为什么要延迟队列兜底
- 如何防超卖、少卖、重复下单
对应八股:
- Redis
- Lua
- RabbitMQ
- 幂等
- 延迟队列
- 最终一致性
2. 下单 / 统一支付 / 退款补偿链路
要讲清:
- 下单和支付如何分层
- 支付回调如何更新状态
- 超时未支付如何取消
- 主动取消 / 退款后如何补偿
- 钱包流水如何保证正确
对应八股:
- MySQL 事务
- MQ 可靠性
- 幂等
- 状态机
- 退款补偿
- 分布式一致性
3. Redis 分层缓存设计 + 详情页缓存读写链路
要讲清:
- 为什么列表、详情、计数、状态要拆开缓存
- 为什么 ZSet 适合列表和排行
- 为什么详情适合 String
- 为什么更新后删缓存而不是直接更新缓存
- 穿透、击穿、雪崩怎么处理
对应八股:
- Redis 数据结构
- 缓存三兄弟
- 缓存一致性
- 逻辑过期
- 分布式锁
- Pipeline
4. Feed 推送与滚动读取 + 互动双轨同步链路
要讲清:
- 发布内容后如何写入粉丝信箱
- 为什么用 ZSet 做滚动读取
- 为什么不用传统 offset 分页
- 点赞评论收藏这些热数据为什么先写 Redis
- 为什么要异步回刷 MySQL
对应八股:
- Redis ZSet
- 滚动分页
- 批量查询
- 热数据回刷
- 最终一致性
- CompletableFuture / 线程池
5. 审核中心责任链 + 发布审核与搜索 / 向量同步链路
要讲清:
- 为什么审核要异步
- 为什么要责任链
- 敏感词 / AI / 人工审核怎么串起来
- 为什么审核后还要回写源服务
- 为什么还要同步 ES / Milvus / 热榜
对应八股:
- 责任链模式
- MQ
- 异步解耦
- ES 同步
- 最终一致性
6. 搜索读链路 + 热词沉淀链路
要讲清:
- 用户搜索请求怎么走
- 为什么搜索不用 MySQL like
- ES 检索后如何排序、高亮、分页
- 搜索历史和热搜词怎么统计
- LBS / 热度 / 多策略排序怎么协同
对应八股:
- Elasticsearch
- 倒排索引
- 分词器
- ZSet 热词
- 排序策略
7. RabbitMQ 消息可靠性全链路
要讲清:
- 消息发送工具类怎么封装的
- 生产者 Confirm 确认怎么保证发送可靠
- 消费者手动 ACK / NACK 怎么用
- 重复消费怎么做幂等(三层防护)
- 重试机制怎么设计(本地重试 + 指数退避)
- 死信队列什么时候触发、怎么处理
- 延迟队列用 TTL + 死信还是延迟插件
- 消息补偿任务 + XXL-JOB 怎么兜底
对应八股:
- RabbitMQ 交换机 / 队列 / 路由
- 消息可靠性三板斜(Confirm + 持久化 + ACK)
- 重复消费与幂等
- 死信队列
- 延迟队列
- 最终一致性
8. 热榜增量洗牌与全量重建链路
要讲清:
- 热点数据防冷启动策略
- 为什么用 XXL-JOB 拆分增量与全量调度
- ZSet 榜单重算与老数据 Top N 合并机制
- 时间衰减公式解决霸榜痛点
对应八股:
- Redis ZSet 底层跳表
- 定时任务原理与幂等
- 海量数据榜单分页
9. AI Agent策略路由与RAG多维增强生成链路
要讲清:
- Spring WebFlux 与 SSE 单工流式响应
- LlmRoutingAgent 框架级多智能体分发
- Chat Memory 记忆回填切片
- Milvus 向量库与经纬度 LBS 的 RAG 检索
- 动态卡片反向解析渲染
对应八股:
- NIO 网络编程(SSE/WebSocket区别)
- 大模型常用 API 与 Function Calling 落地方案
- 向量搜索树与传统倒排索引区别
6. 9 条链路的 3 分钟讲法模板
这部分不是让你背稿,而是给你一个稳定的表达骨架。
每条链路都尽量按这个顺序讲:
- 先说业务问题:这条链路解决什么实际问题。
- 再说核心方案:入口、缓存、消息、数据库、调度分别怎么分工。
- 再说最难的点:超卖、幂等、补偿、最终一致性、热点数据之类的问题怎么兜住。
- 最后说结果:性能收益、系统稳定性、为什么这个方案比“直接查库/直接同步”更合适。
1. 秒杀抢购全链路
可以这样开场:
这条链路主要解决高并发秒杀下的超卖、一人多单和落单削峰问题。我的做法是先用 Redis Lua 做原子校验和预扣库存,再通过 MQ 异步落单,把库存压力从数据库前移到 Redis;订单真正创建后再批量扣减数据库库存,最后配合延迟队列和定时任务做超时取消与库存回滚兜底。
面试时记得补这 3 个追问点:
- 为什么必须用 Lua,而不是多次 Redis 命令拼起来
- 为什么不能同步下单
- 为什么有延迟队列后还要定时任务兜底
2. 下单 / 统一支付 / 退款补偿链路
可以这样开场:
这条链路主要解决订单创建、支付状态流转、超时取消和退款补偿的一致性问题。我的设计是把下单、支付、退款拆成不同阶段:订单服务负责状态流转,支付服务负责受理和回调,钱包服务只负责账务变更;中间通过 MQ 做异步解耦,再通过幂等校验和补偿任务保证最终收敛。
面试时记得补这 3 个追问点:
- 支付回调重复通知怎么防重
- 未支付取消和主动退款的边界怎么区分
- 钱包流水为什么不能和订单状态写成一个同步事务
3. Redis 分层缓存设计
可以这样开场:
这条链路主要解决高频读场景下的数据库压力问题。我把缓存拆成列表、详情、计数、状态和热榜几层:列表和排行主要走 ZSet,详情走 String,计数和状态走独立键;写路径统一走“先写库再删缓存”,读路径根据场景配空值缓存、逻辑过期和互斥锁重建,尽量把热点读流量挡在 Redis。
面试时记得补这 3 个追问点:
- 为什么列表、详情、计数不能混成一层缓存
- 为什么更新后删缓存,而不是直接更新缓存
- 击穿和雪崩分别怎么处理
4. Feed 推送与互动同步链路
可以这样开场:
这条链路主要解决内容发布后的关注分发和高频互动写扩散问题。我的做法是发布时把动态写入粉丝信箱 ZSet,读取时用滚动分页避免传统 offset 在动态流里抖动;点赞、收藏、评论这些高频互动先落 Redis 热数据,再通过异步回刷和快照归档批量写回 MySQL。
面试时记得补这 3 个追问点:
- 为什么 Feed 读取不用 offset 分页
- 为什么互动先写 Redis 再异步回库
- 回刷任务失败后怎么避免数据长期不一致
5. 审核中心责任链与搜索双写链路
可以这样开场:
这条链路主要解决内容发布后的审核、状态回写和搜索副本同步问题。我的方案是把敏感词、AI 审核、人工审核做成责任链,审核完成后回写源服务,再通过 MQ 把数据异步同步到 Elasticsearch 和 Milvus,接受短暂不一致,但通过幂等消费和补偿保证最终收敛。
面试时记得补这 3 个追问点:
- 为什么审核不能直接同步串在主流程里
- 为什么要有责任链,而不是一个大 if-else
- 为什么 ES / Milvus 不放进主事务里强一致写入
6. 搜索读链路与热词沉淀
可以这样开场:
这条链路主要解决商家、商品和内容搜索的检索效率与排序问题。我把检索主路径放在 ES,上层再叠 LBS、热度、多策略排序和热词沉淀;数据库只作为真实源,不承担复杂全文检索,搜索过程中产生的关键词和历史记录再写入 Redis 做热词统计和推荐。
面试时记得补这 3 个追问点:
- 为什么搜索不用 MySQL like
- LBS、热度和关键词相关性怎么一起排序
- 热词为什么放 Redis 而不是直接落 MySQL
7. RabbitMQ 消息可靠链路
可以这样开场:
这条链路主要解决异步场景下的消息可靠投递和最终一致性问题。我的实现分三层:发送端用统一工具类封装 Confirm 和 Return 回调;消费端统一走 Redis 幂等占坑加手动 ACK/NACK;异常情况下再通过重试、死信和延迟队列做兜底,避免消息丢失或重复消费把业务状态打乱。
面试时记得补这 3 个追问点:
- Confirm、Return、ACK 各自解决哪一段可靠性
- 重复消费时为什么要 Redis 幂等占坑
- 死信队列和延迟队列在项目里分别做什么
8. 热榜洗牌与全量重建链路
可以这样开场:
这条链路主要解决热门面板、店铺榜和内容榜的持续更新问题。我的方案是把互动变化先写入热度计算队列,增量任务定时洗牌并保留 Top N 老榜数据避免剧烈抖动;每天凌晨再做全量重建,解决冷启动和长期霸榜问题。
面试时记得补这 3 个追问点:
- 为什么要拆增量任务和全量重建
- 为什么要保留老榜 Top N 再合并
- 时间衰减为什么能缓解霸榜
9. AI 路由与 RAG 生成链路
可以这样开场:
这条链路主要解决用户自然语言提问后的多路检索和生成问题。我的实现是用 Spring AI 做模型接入和对话编排,先通过意图路由决定要不要调用店铺、商品、博客等工具,再结合 Elasticsearch、Milvus 和 LBS 信息做 RAG 检索,最后用 SSE 把结果流式返回到前端,并支持推荐卡片和订单卡片渲染。
面试时记得补这 3 个追问点:
- 为什么这里用 SSE,而不是 WebSocket
- 向量检索和 ES 检索分别负责什么
- 为什么要做意图路由,而不是所有请求都走一套提示词
- Milvus 不可用时为什么不能直接让 AI 链路整体失败
7. 你应该怎么复习:正确顺序
第一步:先按链路复习,不要按技术栈平铺
错误方式:
- 今天背 Redis 100 题
- 明天背 MQ 100 题
- 后天背 MySQL 100 题
正确方式:
- 先选一条项目链路
- 列出它涉及的技术
- 再去补这些技术点
- 学完马上回项目里验证
例如:
如果今天复习“秒杀链路”
那你今天重点就是:
- Redis Lua
- 一人一单
- RabbitMQ 异步落单
- 延迟队列
- 幂等
- 订单状态流转
如果今天复习“缓存链路”
那你今天重点就是:
- ZSet
- 详情缓存
- 空值缓存
- 逻辑过期
- 互斥锁重建
- 删除缓存策略
如果今天复习“审核搜索链路”
那你今天重点就是:
- 责任链
- MQ
- ES
- 搜索同步
- 最终一致性
第二步:每学一个知识点,都回到项目里问自己 5 个问题
- 我项目里这个知识点在哪一步出现?
- 我为什么这样设计?
- 不这样设计会怎样?
- 这个方案的缺点是什么?
- 如果面试官追问,我能不能继续展开?
只要你能把这 5 个问题答出来,这个知识点就算真正学到了。
第三步:项目表达要分三层准备
1. 1 分钟版本
快速说清:
- 项目做什么
- 技术栈
- 最强亮点
2. 3 分钟版本
说清:
- 架构
- 核心业务
- 三条最强链路
- 中间件作用
3. 10 分钟版本
说清:
- 一条完整链路
- 技术选型原因
- 难点
- 优化
- 兜底方案
8. 你每天应该怎么学(8 小时版本)
上午
9:00 - 11:00 算法
- 1 道简单热身
- 2 道中等主练
- 复盘昨天错题
11:10 - 12:40 Java 基础 / 并发 / JVM
- 按专题轮换
- 学完开口讲
下午
14:00 - 15:30 MySQL / Redis / RabbitMQ(三选一主练)
- 结合当天主链路去学
- 不要脱离项目
15:40 - 17:10 项目链路梳理
- 看一条链路图
- 对照代码
- 整理问题和答案
- 写出 3 分钟讲稿
晚上
19:30 - 20:30 Spring / 中间件补强
- Spring Boot / Cloud / Gateway / ES / XXL-JOB 轮换
20:30 - 21:00 输出复盘
- 讲 1 条项目链路
- 讲 1 个八股问题
- 记录不会的点
9. 给你一个可执行的 7 天循环
先看这张 7 天冲刺总览表
| 天数 | 主链路 | 主补八股 | 当天输出 |
|---|---|---|---|
| Day 1 | 秒杀抢购全链路 | Redis Lua、RabbitMQ、延迟队列、幂等 | 讲清“为什么不会超卖” |
| Day 2 | 下单 / 支付 / 退款补偿 | MySQL 事务、状态流转、幂等、补偿 | 讲清“支付成功后怎么落单和退款” |
| Day 3 | Redis 分层缓存链路 | ZSet、逻辑过期、空值缓存、分布式锁、Pipeline | 讲清“为什么缓存要分层设计” |
| Day 4 | Feed 推送与互动同步 | ZSet、滚动分页、批量回刷、线程池 | 讲清“为什么不用传统分页、为什么热数据先落 Redis” |
| Day 5 | 审核责任链与搜索双写 | 责任链、MQ、ES / Milvus 最终一致性 | 讲清“为什么审核和搜索同步不能放在主事务里” |
| Day 6 | 搜索与热词 / 登录鉴权 | Elasticsearch、LBS、多策略排序、Gateway、Nacos | 讲清“搜索为什么不用 MySQL like、网关鉴权怎么串” |
| Day 7 | 项目表达与模拟面试 | 三段式讲法、技术选型、难点、兜底思路 | 完成 1 分钟 / 3 分钟 / 10 分钟三版表达 |
Day 1
- 算法
- Java 集合 / 并发
- 秒杀抢购全链路
- Redis Lua + MQ + 延迟队列
Day 2
- 算法
- MySQL 索引 / 事务
- 普通下单 / 支付 / 退款链路
- 幂等与状态流转
Day 3
- 算法
- Redis 数据结构
- Redis 分层缓存设计
- 详情页缓存读写链路
Day 4
- 算法
- CompletableFuture / 线程池
- Feed 推送与滚动读取
- 互动双轨同步
Day 5
- 算法
- ES 基础
- 审核中心责任链
- 发布审核与搜索 / 向量同步
Day 6
- 算法
- Spring Boot / Cloud / Gateway
- 搜索读链路与热词沉淀
- 登录鉴权与网关透传
Day 7
- 模拟面试
- 项目 1 分钟 / 3 分钟 / 10 分钟表达
- 查漏补缺
- 整理一周错题与追问点
然后下周继续循环,但把主讲链路换成:
- 热榜维护
- XXL-JOB 定时任务
- AI 对话链路
- 店铺经营分析与 AI 建议
10. 现在最不该做的事
1. 不要继续横向扩技术栈
你现在不缺“知道很多名词”,你缺的是:
- 讲清楚
- 能追问
- 能落到项目
2. 不要一上来啃完整个项目
项目太大,容易陷进去。
先抓 6 条主链路就够了。
3. 不要把 AI 当第一主线
AI 是亮点,但不是暑期 Java 后端实习的主战场。
主线还是:
- Java
- MySQL
- Redis
- MQ
- Spring
- 算法
- 项目链路
4. 不要只背八股不回项目
你最强的优势就是项目,八股必须回到项目里验证。
11. 最终复习优先级(结合你最新 README 版本)
S 级:现在必须优先打透
- Java 基础 / 并发 / JVM
- MySQL
- Redis
- RabbitMQ
- Spring Boot / Spring Cloud / Gateway
- 算法
- 秒杀 / 下单 / 支付 / 退款 / 缓存 / Feed 这些核心链路
A 级:作为重点扩展
- Elasticsearch
- 设计模式
- XXL-JOB
- 审核中心
- 搜索读链路
- 热榜与双轨同步
B 级:作为亮点补充
- AI / Spring AI / RAG / Milvus
- Netty / IM
- MinIO
- 店铺经营分析与 AI 建议
12. 最后给你的最直接建议
你现在最好的学习路径已经很清楚了:
先抓项目核心链路,再补对应八股;先拿交易、缓存、Feed、审核、搜索打主线,再拿 AI 和经营分析做加分。
如果只说一句最重要的话,那就是:
不要把 README 里的内容当“展示材料”,要把它变成你的面试提纲。
你现在的核心任务不是继续堆文档,而是把这些链路图真正变成你能讲、能追问、能和八股对应起来的东西。
13. 接下来你最应该立刻做的三件事
1. 把这 6 条主链路分别写成一页自己的面试提纲
每页只回答:
- 流程怎么走
- 为什么这样设计
- 哪些地方用了中间件
- 风险点是什么
- 怎么兜底
2. 建一个“项目反推八股”表
格式建议:
| 链路 | 涉及技术 | 必会问题 |
|---|---|---|
| 秒杀链路 | Redis / Lua / MQ / MySQL | 为什么防超卖?为什么异步下单?为什么延迟队列? |
| 缓存链路 | Redis / ZSet / 分布式锁 | 为什么分层缓存?为什么逻辑过期? |
| Feed 链路 | ZSet / Pipeline / 线程池 | 为什么滚动分页?为什么热数据先写 Redis? |
3. 开始每日输出
每天至少做两件事:
- 讲 1 条链路
- 讲 1 个八股问题
这样你准备暑期实习的效率会比单纯背八股高很多。