后端学习路线总览
后端开发不是"学一门语言 + 一个框架"那么简单,它是一整套关于 数据怎么存、请求怎么处理、服务怎么跑、流量怎么扛 的工程体系。
这套教程围绕以下技术栈展开:
| 层 | 技术 | 角色 |
|---|---|---|
| 应用框架(JVM) | Spring Boot | 企业级首选,生态最成熟 |
| 应用框架(Node) | ElysiaJS(Bun) | 新一代 TS-first,极致性能与 DX |
| 关系型数据库 | MySQL / PostgreSQL | 业务核心数据 |
| 内存数据库 | Redis | 缓存、分布式锁、限流、消息 |
| 搜索引擎 | Elasticsearch | 全文检索、日志分析 |
| 列存 OLAP | ClickHouse | 海量数据分析、实时报表 |
| 向量库 | Milvus / pgvector | LLM RAG、语义检索 |
| 容器 | Docker | 标准化打包与运行环境 |
| 编排 | Kubernetes | 集群调度、弹性伸缩 |
| CI/CD | GitHub Actions / ArgoCD | 代码到生产的自动化 |
| 微服务基建 | Nacos / Sentinel / Seata | 配置注册、限流、分布式事务 |
| 数据流转 | Debezium / Flink | CDC、实时计算 |
一、后端到底在做什么
一个最朴素的后端服务,做的就这几件事:
- 接收请求:HTTP / gRPC / WebSocket
- 校验参数 & 鉴权:别让坏数据/非法用户穿透到下游
- 执行业务逻辑:调用其他服务、读写数据库
- 返回响应:JSON / 二进制 / 流
- 打日志、上报指标:出问题能查、能告警
听起来像 CRUD,但工业级别的难点在 "高并发下还正确、还快、还稳"。
二、技术栈选型直觉
| 场景 | 推荐组合 |
|---|---|
| 国内中大型公司、强一致业务 | Spring Boot + MySQL + Redis + ES |
| 创业公司、追求迭代速度 | ElysiaJS / NestJS + PostgreSQL + Redis |
| 数据分析重、复杂查询多 | PostgreSQL(JSONB / CTE / 窗口函数) |
| 跨境/轻业务/Serverless | Bun + Elysia + Postgres(Neon/Supabase) |
经验法则:先选数据库,再选语言。语言可以换,数据迁移代价巨大。
三、Spring Boot vs ElysiaJS
| 维度 | Spring Boot | ElysiaJS |
|---|---|---|
| 语言 | Java / Kotlin | TypeScript(Bun) |
| 启动速度 | 秒级(GraalVM 可降到毫秒) | 毫秒级 |
| 性能 | 高(JIT 预热后) | 极高(Bun + uWebSockets 路由) |
| 生态 | 极成熟,几乎一切都有官方 starter | 年轻但增长快 |
| 学习曲线 | 高(IoC、AOP、Bean 生命周期) | 低(写法贴近 Express/Hono) |
| 招聘市场 | 巨大(国内主流) | 小众但前端友好 |
怎么学:学一边重一边。先扎实 Spring Boot 拿到企业级心智模型,再用 Elysia 体会现代 TS 框架的轻量、类型驱动写法,会让你对"框架本质"看得更透。
四、数据库怎么选
| 数据库 | 强项 | 弱点 |
|---|---|---|
| MySQL | 部署简单、生态广、写多读多业务稳 | JSON / 复杂查询 / 物化视图弱 |
| PostgreSQL | 类型丰富、JSONB、窗口、CTE、扩展强 | 单机性能上限略低、连接数昂贵 |
| Redis | KV、过期、原子操作、Pub/Sub、Stream | 容量受内存限制 |
| Elasticsearch | 倒排索引、聚合、全文检索 | 资源吃,不适合做主库 |
关键认知:Redis 不是数据库的替代品,ES 也不是。它们是给关系库"开外挂"的,主数据永远在 MySQL/Postgres 里。
五、Docker 与 K8s 在这里扮演什么角色
| 工具 | 解决的问题 |
|---|---|
| Docker | "在我电脑上能跑"——把代码 + 依赖 + 系统打成镜像 |
| Docker Compose | 单机一键起一组服务(开发环境最常用) |
| Kubernetes | 多节点集群:调度、扩缩、滚动发布、自愈 |
学习顺序是:先 Docker、再 Compose、再 K8s。直接学 K8s 会被概念淹没。
六、推荐学习路径
HTTP 与 REST 基础(02)
↓
┌───────────────────────────────────────────┐
▼ ▼
Spring Boot 主线 (03~08) ElysiaJS 主线 (09~11)
IoC → Web → JPA → Security 路由 → 中间件 → 类型 → 插件
└─────────── 应用层框架 ────────────┘
↓
┌─────────── 数据存储层 ────────────┐
▼ ▼
MySQL (12~15) PostgreSQL (16~17)
Redis (18~20)
Elasticsearch (21~23)
MongoDB / 时序 (38) ClickHouse (39)
↓
┌─────────── 容器与部署 ────────────┐
Docker (24~26) → K8s (27~30)
CI/CD + GitOps (40)
↓
┌─────────── 微服务体系 ────────────┐
消息队列(31) 微服务(32) API网关(35) gRPC/GraphQL(37)
配置中心 + 注册中心(41) 分布式事务(42) 限流熔断降级(43)
↓
┌─────────── 工程能力 ──────────────┐
监控可观测性(33) 日志(34) 性能压测(36) 任务调度(44)
↓
┌─────────── 数据流转与业务延展 ─────┐
对象存储(45) CDC 数据同步(46) 流处理(47)
↓
┌─────────── 通信与 AI 时代基建 ─────┐
WebSocket / 实时(49) 向量库 + AI Infra(48)
↓
┌─────────── 工程素养与架构 ─────────┐
测试体系(50) DDD 与架构模式(51)
JVM 调优与并发(52) OAuth2/OIDC/SSO(53)
多级缓存与一致性(54) 网络协议深度(55)
API 文档与契约(56) 多租户 SaaS(57)
↓
┌─────────── 平台 / 云原生进阶 ──────┐
IaC(58) SRE 与混沌工程(59)
Service Mesh 实战(60)
↓
┌─────────── 专业方向(选修)────────┐
图数据库(61) 数据仓库与数据湖(62)
支付与三方(63) 国际化与时区(64)
Serverless 与 Edge(65) 错误处理(66)最低成本上手顺序(给只想跑通一个 demo 的人):
- 装 Docker
docker run起一个 MySQL + 一个 Redis- 用 Spring Boot 或 Elysia 写一个
/usersCRUD - 上 JWT 鉴权
- 把缓存接到 Redis
- 写 Dockerfile、加 docker-compose.yml
- 推到 K8s,做一次滚动发布
- 配 GitHub Actions,push 自动部署(40 章)
- 接 Nacos 做配置和服务发现(41 章)
- 加文件上传走对象存储(45 章)
走完这一圈,你已经站在初级后端的中位线上了。
进阶选修包:
- 业务做大 → 分布式事务(42)+ 限流熔断(43)+ 任务调度(44)
- 数据做大 → CDC(46)+ 流处理(47)+ ClickHouse(39)
- AI 接入 → 向量库 + RAG(48)+ WebSocket 流式输出(49)
- 工程素养 → 测试体系(50)+ DDD 与架构(51)+ 错误处理(66)
- Java 内功 → JVM 调优与并发(52)
- 企业级登录 → OAuth2/OIDC/SSO(53)
- 性能下一档 → 多级缓存与一致性(54)+ 网络协议深度(55)
- 协作工程 → API 文档与契约(56)
- 做 SaaS → 多租户架构(57)
- 云原生进阶 → IaC(58)+ SRE(59)+ Service Mesh(60)
- 专业方向 → 图数据库(61)/ 数据湖仓(62)/ 支付(63)/ 国际化(64)/ Serverless(65)
七、新手最容易踩的坑
- 太早追新技术:别一上来学 Quarkus、GraphQL Federation、Service Mesh,先把 CRUD + 事务 + 缓存吃透
- 以为 ORM 就是 SQL:ORM 是给你提速的工具,不是免去 SQL 思考的捷径,N+1、慢查询、死锁 全在 SQL 层
- 缓存当成银弹:不理解 缓存穿透 / 击穿 / 雪崩 / 一致性 就上 Redis,迟早出生产事故
- K8s 第一天就上:中小团队 Docker Compose 足够撑很久,K8s 是"运维平方根成本",上之前先掂量
- 不写日志 / 不看日志:80% 的线上问题是"翻日志能解决但没人翻"
八、本系列阅读建议
- 每章自带可运行的最小代码片段,边读边敲
- Spring Boot / Elysia 章节相对独立,可以只挑一条主线
- 数据库章节强烈建议配合本地真实环境(用 Docker 起就行)做练习
- K8s 章节建议用 kind / minikube / k3d 在本地跑,不要直接拿生产试手
下一章我们从 HTTP 与 RESTful 这个最容易被略过、却决定后端代码味道的话题开始。