导读
0计算机基础(网络 / OS / 数据结构 / 算法);
1Java 核心;
2框架体系(Spring / Boot / Cloud / MyBatis / Netty);
3数据库;
4开发工具;
5系统设计;
6分布式;
7高性能;
8高可用;
9全栈联调与 Agent 后端衔接。
模块地图
| 编号 | 主题 | 本地目录 | 状态 |
|---|---|---|---|
| 0 | 计算机基础 | 0. Computer-Science/ |
待写 |
| 1 | Java 核心 | 1. Java-Core/ |
掘金 3 篇 |
| 2 | 框架体系 | 2. SpringBoot/ |
Q&A 草稿 100 题 |
| 3 | 数据库 | 3. Database/ |
MySQL 掘金 1 篇 |
| 4 | 开发工具 | 4. Dev-Tools/ |
待写 |
| 5 | 系统设计 | 5. System-Design/ |
待写 |
| 6 | 分布式 | 6. Distributed/ |
待写 |
| 7 | 高性能 | 7. High-Performance/ |
待写 |
| 8 | 高可用 | 8. High-Availability/ |
待写 |
| 9 | 全栈联调 | 9. FullStack-Integration/ |
待写 |
0. 计算机基础
后端面试与架构设计的底座。网络部分与 front/all.md §2 Node 网络、§9 网络与部署 有重叠,可对照复习。
0.1 网络
- TCP、UDP、HTTP、WebSocket(Node 视角,协议通用)
- TLS / HTTPS(见 front §9 https)
- HTTP/1 与 HTTP/2
- HTTP 常用 Content-Type(front §10)
- DNS 解析流程
- 三次握手 / 四次挥手
- 长连接、Keep-Alive、队头阻塞
- WebSocket vs SSE (Agent 流式输出,见 front §10 SSE)
- 跨域与 CORS(front §10 跨域)
0.2 操作系统
- 进程与线程:上下文切换、用户态 / 内核态
- 进程间通信:管道、消息队列、共享内存
- 内存管理:虚拟内存、分页、页面置换
- 死锁:必要条件、预防、检测
- IO 模型:阻塞 / 非阻塞 / 多路复用(与 Java NIO、Node libuv 对照)
- IO / NIO / AIO(Java 侧)
0.3 数据结构
- 数组、链表、栈、队列
- 哈希表:冲突解决、扩容
- 树:二叉树、BST、红黑树(HashMap 底层)
- 堆:优先队列、TopK
- 图:BFS、DFS(服务依赖图排查)
- 跳表(Redis ZSet 了解)
0.4 算法
- 时间 / 空间复杂度
- 排序:快排、归并、堆排及稳定性
- 查找:二分、哈希
- 双指针、滑动窗口、前缀和
- 常见后端场景:限流计数、LRU、一致性哈希
1. Java 核心
1.1 JVM 与类加载
- JVM 与类加载
- 运行时数据区:堆、栈、方法区 / 元空间
- 对象创建:指针碰撞、TLAB
- 垃圾回收:标记-清除、标记-整理、复制;G1、ZGC(了解)
- GC 调优思路:停顿时间 vs 吞吐量
- 类加载器:双亲委派、打破双亲委派(SPI)
- 常见 OOM 排查:heap dump、MAT
1.2 反射 / 注解 / 动态代理
- Java 反射 / 注解 / 动态代理
- 反射性能开销与 Spring 中的应用
- 注解处理器、运行时注解
- JDK 动态代理 vs CGLIB
- Spring AOP 原理关联
1.3 JNI 与 Native 交互
- JNI
- Java 调用 Native 的场景:性能敏感、已有 C/C++ 库
- 与 Hybrid App Native SDK 集成的对照(front §4)
1.4 并发编程
synchronized锁升级:偏向锁 → 轻量锁 → 重量锁volatile:可见性、禁止指令重排ThreadLocal原理与内存泄漏- 线程池:
ThreadPoolExecutor七大参数、拒绝策略 ConcurrentHashMap分段 / CAS 演进CompletableFuture异步编排- Java 21 Virtual Thread(了解)
1.5 集合与 Stream
ArrayListvsLinkedListvsArrayDequeHashMap扩容、树化、hash 扰动- Stream 中间操作与终止操作
- Optional 正确使用
2. 框架体系
2.1 Spring / SpringMVC / MyBatis
- IoC 容器:Bean 定义、依赖注入方式
- Bean 生命周期:实例化 → 属性填充 → 初始化 → 销毁
- 循环依赖:三级缓存
- SpringMVC 请求链路:DispatcherServlet → HandlerMapping → HandlerAdapter → ViewResolver
- MyBatis:
#{}vs${}、一级 / 二级缓存、插件机制 - 事务:
@Transactional传播行为、失效场景(同类自调用、非 public)
2.2 Spring Boot
- 自动配置:
@EnableAutoConfiguration、spring.factories/AutoConfiguration.imports - Starter 机制:依赖聚合 + 条件装配
- 配置:Profile、
application.yml优先级、配置中心 - Actuator:健康检查、metrics
- 全局异常、参数校验、拦截器 vs 过滤器
- 本地 Q&A :Spring Boot 100 题(待迁移至
backend/2. SpringBoot/)
2.3 Spring Cloud
- 服务注册发现:Nacos / Eureka
- 配置中心:Nacos Config
- 负载均衡:Spring Cloud LoadBalancer
- 熔断限流:Sentinel / Resilience4j
- 网关:Spring Cloud Gateway 路由、过滤器
- OpenFeign:声明式 HTTP 客户端
- 分布式追踪:Micrometer Tracing / OpenTelemetry
2.4 Netty
- Reactor 线程模型:Boss / Worker
- Channel、Pipeline、Handler
- 零拷贝、ByteBuf
- 适用场景:长连接网关、IM、RPC 框架底层
2.5 Serverless
- FaaS 模型:事件驱动、冷启动
- 适用边界:短时无状态任务 vs 长连接 / 有状态服务
- 与 Spring Cloud Function 了解
3. 数据库
3.1 MySQL(关系型为主)
- MySQL 原理与实践
- 存储引擎:InnoDB vs MyISAM
- 索引:B+ 树、聚簇 / 非聚簇、覆盖索引、最左前缀
- 事务 ACID、隔离级别、MVCC、undo / redo log
- 锁:行锁、间隙锁、死锁检测
- 慢 SQL:explain、索引优化、深分页
- 主从复制、读写分离
- 分库分表:垂直 / 水平、ShardingSphere(了解)
3.2 MongoDB(文档型)
- 文档模型 vs 关系模型选型
- 聚合管道
- 副本集、分片
- 适用场景:日志、非结构化业务数据、快速迭代 schema
3.3 Redis(缓存 / 结构存储)
- 五大数据结构及应用场景
- 持久化:RDB vs AOF
- 缓存模式:Cache-Aside、穿透 / 击穿 / 雪崩
- 分布式锁:SET NX EX、Redisson、看门狗
- Lua 脚本原子性
- 与 front §9 缓存 前端缓存策略对照
4. 开发工具
4.1 构建与依赖
- Maven:生命周期、依赖传递、冲突调解、多模块
- Gradle:与 Maven 对比、构建性能
- 私服:Nexus / Artifactory
4.2 应用服务器
- Tomcat:Connector、Container、类加载
- 嵌入式容器:Spring Boot 内嵌 Tomcat / Jetty / Undertow
- Nginx 反向代理与静态资源(front §9,部署侧)
4.3 容器与 CI
- Docker 基础(front §9)
- 镜像分层、多阶段构建
- Jenkins / GitLab CI 流水线(front §9 持续集成)
5. 系统设计
入口:WEB 架构介绍 --- 建议先读此文建立全局视图。
5.1 架构分层
- 展示层 / BFF / 领域服务 / 数据层
- 单体 → 模块化单体 → 微服务演进路径
- DDD 限界上下文、聚合根(与金融业务模块拆分)
- 前后端分离契约:DTO / VO / DO 分层
5.2 RESTful API 设计
- 资源命名、HTTP 动词、状态码规范
- 版本策略:URL / Header / 无版本 + 兼容
- 分页:offset vs cursor
- 幂等性:Idempotency-Key、去重表(支付 / 订单)
- OpenAPI / Swagger 文档与 Mock
- 与 front axios 拦截器 协作
5.3 认证与授权
- Session + Cookie vs JWT
- OAuth2 / OIDC、SSO 单点登录
- RBAC / ABAC
- 前端鉴权流程(front §9)与后端 Token 签发 / 刷新
- 多租户:库 / schema / 行级隔离
5.4 数据安全
- 传输加密:TLS
- 存储加密:敏感字段 AES、密钥管理
- 脱敏:展示层掩码、日志脱敏
- 敏感词过滤
- 审计日志:谁、何时、改了什么
- 常见 Web 安全攻防(front §10,前后端共同责任)
5.5 定时任务
- Spring
@Scheduled、Quartz、XXL-JOB - 分布式调度:任务分片、幂等、错过触发策略
- 场景:对账、报表、数据同步
5.6 消息推送
- 站内信、短信、邮件
- WebSocket 推送 vs 轮询
- 移动端 Push(与 Hybrid App 联调,front §4)
6. 分布式
6.1 理论与协议
- CAP、BASE
- 一致性:强一致、最终一致、因果一致
- 共识算法:Raft、Paxos(了解)
- 时钟:物理时钟 vs 逻辑时钟、分布式 ID(Snowflake、Leaf)
6.2 API 网关
- 路由、鉴权、限流、灰度
- Spring Cloud Gateway vs Kong vs Nginx
- 与 BFF 的职责边界
6.3 分布式锁
- Redis 锁、Redisson
- Zookeeper 临时顺序节点
- 数据库悲观锁 / 乐观锁
- 选型:性能 vs 可靠性
6.4 分布式事务
- 2PC / 3PC 问题
- TCC:Try / Confirm / Cancel
- Saga:编排 vs choreography
- 本地消息表 / Outbox
- Seata AT / TCC 模式(了解)
6.5 协调与 RPC
- Zookeeper:节点类型、Watcher、选主
- RPC 框架:Dubbo、gRPC
- 服务间调用链路过长问题
7. 高性能
7.1 接入层
- CDN:静态资源、边缘缓存
- Nginx 负载均衡:轮询、权重、ip_hash
- 四层 vs 七层负载
7.2 应用层
- 无状态水平扩展
- 异步化:线程池、MQ 削峰填谷
- 连接池:HikariCP 参数调优
- 序列化:JSON vs Protobuf
7.3 数据库层
- 索引优化、执行计划
- 读写分离、主从延迟处理
- 分库分表
- SQL 优化专题(MySQL 文中)
7.4 缓存
- 多级缓存:本地 Caffeine + Redis
- 热点 Key、大 Key、热 Key 探测
- 缓存与 DB 一致性:延迟双删、订阅 binlog
7.5 消息队列
- Kafka vs RabbitMQ 选型
- 顺序消息、事务消息
- 积压处理、消费幂等
- 场景:订单异步、日志采集、Agent 任务队列(Step 3)
8. 高可用
8.1 冗余与容灾
- 主备、主从、集群
- 同城双活、异地多活
- RTO / RPO 目标
- 数据备份与恢复演练
8.2 流量控制
- 限流:令牌桶、漏桶、滑动窗口
- 排队与快速失败
- Sentinel 规则配置
8.3 降级与熔断
- 熔断状态机:关闭 → 打开 → 半开
- 降级策略:默认值、缓存、静态页
- Sentinel vs Hystrix
- 与依赖方 SLA 对齐
8.4 超时与重试
- 超时传递:全链路 timeout budget
- 重试:幂等前提、指数退避、抖动
- 避免重试风暴
8.5 压测与容量
- JMeter / LoadRunner / Gatling
- 基准测试、峰值预估
- 全链路压测、影子库
- 前端性能测试(front §9,端到端视角)
9. 全栈联调与 Agent 后端衔接
把 Step 1 前端、Step 2 后端、Step 3 Agent 串成可交付产品。
9.1 BFF(Backend For Frontend)
- 聚合多个微服务接口,裁剪字段
- 鉴权下沉、统一错误格式
- GraphQL vs REST BFF 选型
- 与 front mock / axios 层对接
9.2 实时通信(Agent 必备)
- SSE :
text/event-stream、SpringSseEmitter、断线重连 - WebSocket:双向场景(协同编辑、IM)
- 与 front §10 SSE AI 对话框 联调 checklist
- 流式 JSON / Markdown 分块推送
9.3 文件与导出
- 大文件上传:分片、断点续传
- 异步导出:MQ + 任务状态轮询 / SSE 通知
- 下载进度 onprogress(front §10)
9.4 与 Agent(Step 3)的 API 契约
| 后端能力 | 实现要点 | Agent 场景 |
|---|---|---|
| REST / OpenAPI | 版本化、幂等、错误码 | Function Calling 调业务 API |
| SSE | 长连接、心跳、超时 | LLM 流式输出、编排进度 |
| Redis | 会话 TTL、分布式锁 | 多轮对话状态、任务去重 |
| MQ | 异步消费、死信 | 长任务(RAG 索引、报告生成) |
| MySQL | 结构化业务数据 | 精确查询工具 |
| 向量库 | Milvus / pgvector | RAG 语义检索 |
| 鉴权 / 脱敏 | RBAC + 字段掩码 | 工具权限、知识库安全 |
9.5 端到端案例
- 信托 App 业务链:身份核验 → 绑卡 → 风测 → 认购 → 合同签署(front §4 Hybrid + 本目录 §5 鉴权 + §3 事务)
- Agent 净值解读:前端 SSE UI → BFF → Agent 编排 → SQL 工具查 MySQL → RAG 查知识库 → 流式返回 Markdown
学习路径
text
Phase A 基础(0 计基 → 1 Java)
Phase B 框架与数据(2 Spring Boot → 3 数据库/Redis)
Phase C 工程能力(4 工具 → 5 系统设计)
Phase D 规模与稳定(6 分布式 → 7 高性能 → 8 高可用)
Phase E 联调落地(9 全栈 + Agent 衔接)
结尾:
本目录作为后端知识体系主索引。总路线见 outline.md;Agent 课纲见 ai/all.md。