Skip to content

后端学习路线总览

后端开发不是"学一门语言 + 一个框架"那么简单,它是一整套关于 数据怎么存、请求怎么处理、服务怎么跑、流量怎么扛 的工程体系。

这套教程围绕以下技术栈展开:

技术角色
应用框架(JVM)Spring Boot企业级首选,生态最成熟
应用框架(Node)ElysiaJS(Bun)新一代 TS-first,极致性能与 DX
关系型数据库MySQL / PostgreSQL业务核心数据
内存数据库Redis缓存、分布式锁、限流、消息
搜索引擎Elasticsearch全文检索、日志分析
列存 OLAPClickHouse海量数据分析、实时报表
向量库Milvus / pgvectorLLM RAG、语义检索
容器Docker标准化打包与运行环境
编排Kubernetes集群调度、弹性伸缩
CI/CDGitHub Actions / ArgoCD代码到生产的自动化
微服务基建Nacos / Sentinel / Seata配置注册、限流、分布式事务
数据流转Debezium / FlinkCDC、实时计算

一、后端到底在做什么

一个最朴素的后端服务,做的就这几件事:

  1. 接收请求:HTTP / gRPC / WebSocket
  2. 校验参数 & 鉴权:别让坏数据/非法用户穿透到下游
  3. 执行业务逻辑:调用其他服务、读写数据库
  4. 返回响应:JSON / 二进制 / 流
  5. 打日志、上报指标:出问题能查、能告警

听起来像 CRUD,但工业级别的难点在 "高并发下还正确、还快、还稳"


二、技术栈选型直觉

场景推荐组合
国内中大型公司、强一致业务Spring Boot + MySQL + Redis + ES
创业公司、追求迭代速度ElysiaJS / NestJS + PostgreSQL + Redis
数据分析重、复杂查询多PostgreSQL(JSONB / CTE / 窗口函数)
跨境/轻业务/ServerlessBun + Elysia + Postgres(Neon/Supabase)

经验法则:先选数据库,再选语言。语言可以换,数据迁移代价巨大。


三、Spring Boot vs ElysiaJS

维度Spring BootElysiaJS
语言Java / KotlinTypeScript(Bun)
启动速度秒级(GraalVM 可降到毫秒)毫秒级
性能高(JIT 预热后)极高(Bun + uWebSockets 路由)
生态极成熟,几乎一切都有官方 starter年轻但增长快
学习曲线高(IoC、AOP、Bean 生命周期)低(写法贴近 Express/Hono)
招聘市场巨大(国内主流)小众但前端友好

怎么学:学一边重一边。先扎实 Spring Boot 拿到企业级心智模型,再用 Elysia 体会现代 TS 框架的轻量、类型驱动写法,会让你对"框架本质"看得更透。


四、数据库怎么选

数据库强项弱点
MySQL部署简单、生态广、写多读多业务稳JSON / 复杂查询 / 物化视图弱
PostgreSQL类型丰富、JSONB、窗口、CTE、扩展强单机性能上限略低、连接数昂贵
RedisKV、过期、原子操作、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 的人):

  1. 装 Docker
  2. docker run 起一个 MySQL + 一个 Redis
  3. 用 Spring Boot 或 Elysia 写一个 /users CRUD
  4. 上 JWT 鉴权
  5. 把缓存接到 Redis
  6. 写 Dockerfile、加 docker-compose.yml
  7. 推到 K8s,做一次滚动发布
  8. 配 GitHub Actions,push 自动部署(40 章)
  9. 接 Nacos 做配置和服务发现(41 章)
  10. 加文件上传走对象存储(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)

七、新手最容易踩的坑

  1. 太早追新技术:别一上来学 Quarkus、GraphQL Federation、Service Mesh,先把 CRUD + 事务 + 缓存吃透
  2. 以为 ORM 就是 SQL:ORM 是给你提速的工具,不是免去 SQL 思考的捷径,N+1、慢查询、死锁 全在 SQL 层
  3. 缓存当成银弹:不理解 缓存穿透 / 击穿 / 雪崩 / 一致性 就上 Redis,迟早出生产事故
  4. K8s 第一天就上:中小团队 Docker Compose 足够撑很久,K8s 是"运维平方根成本",上之前先掂量
  5. 不写日志 / 不看日志:80% 的线上问题是"翻日志能解决但没人翻"

八、本系列阅读建议

  • 每章自带可运行的最小代码片段,边读边敲
  • Spring Boot / Elysia 章节相对独立,可以只挑一条主线
  • 数据库章节强烈建议配合本地真实环境(用 Docker 起就行)做练习
  • K8s 章节建议用 kind / minikube / k3d 在本地跑,不要直接拿生产试手

下一章我们从 HTTP 与 RESTful 这个最容易被略过、却决定后端代码味道的话题开始。

最后更新: