这份大纲怎么用(先读这一段)
这是「内容社区」项目 21章课程的目录导航页,不是某一章的讲义——它帮你建立全局视野、知道每章在整条链路里的位置,而不是一口气啃完。建议先从上到下扫一遍四阶段全景,再按章次顺序点进对应章节细读;遇到看不懂的术语不必卡住,回看前文对应的章次即可。学之前你只需要会一点 Go 基础、MySQL 基本 SQL 和 Docker 入门(详见文末「前置知识清单」),剩下的边做边补。
课程全景与学习路径
整个训练营围绕一个类似「微博 / 小红书」的内容社区项目展开,从单体一步步演进到微服务架构,共分四个阶段:
| 阶段 | 章次 | 主题 | 核心产出 |
|---|---|---|---|
| 一·打地基 | 第1-3章 | Go 基础 / Gin+GORM / JWT+K8s | 能跑起来的单体 Web 服务,并部署上云 |
| 二·工程化 | 第4-9章 | 接口抽象 / SSO / 发帖 / 互动 / 监控 / 榜单 | 掌握测试、缓存、消息队列、可观测性等工程能力 |
| 三·微服务 | 第10-15章 | 拆分微服务 / 数据迁移 / 注册发现 / 负载均衡 / 治理 / 支付 | 从单体走向微服务,掌握服务间通信与治理 |
| 四·高阶 | 第16-21章 | 评论 / ES 搜索 / ELK / Feed / IM / 总结 | 掌握搜索、日志、Feed 流、IM 等高阶业务与中间件 |
目录
第一阶段:打地基
- 第01章 · Go 基础语法 — 类型、接口、泛型、切片/map、Set 封装、并发工具 → 收获:把 Go 的"并发与接口"地基打牢,后面所有代码都建立在这之上。
- 第02章 · 用户功能与 Gin / GORM 入门 — Gin 路由与中间件、GORM 模型与 CRUD、分层架构、密码加密、Session → 收获:写出第一个能注册登录的 Web 服务,理解"分层架构"为什么是工程标配。
- 第03章 · JWT 认证与 Kubernetes 部署 — Session vs JWT、Redis 入门、限流、K8s 部署 Web/MySQL/Redis/Ingress → 收获:把服务真正部署上云,并搞懂无状态认证的来龙去脉。
第二阶段:工程化
- 第04章 · 接口抽象与短信服务与测试 — 登录性能优化、短信登录、依赖注入、单元测试、集成测试、第三方服务治理 → 收获:学会用"面向接口 + DI"解耦第三方依赖,并写出可信的测试。
- 第05章 · SSO 与微信扫码登录 — OAuth2、微信扫码、长短 token、配置中心、结构化日志 → 收获:掌握单点登录与 OAuth2 套路,顺带建立"日志要结构化"的意识。
- 第06章 · 发帖功能与缓存 — 文本存储、发帖增强、查询接口、Redis 缓存与三大缓存问题 → 收获:第一次正面解决"缓存穿透/击穿/雪崩",这是后端基本功。
- 第07章 · 点赞收藏与 Kafka 入门 — 通用互动服务、Redis 计数、Kafka 生产消费、领域事件改造 → 收获:用 Kafka 把"同步调用"改成"异步解耦",打开消息中间件的大门。
- 第08章 · 监控埋点与可观测性 — 可观测性三支柱、Prometheus、OpenTelemetry、Grafana → 收获:建立"日志/指标/链路"三件套认知,出问题不再两眼一抹黑。
- 第09章 · 榜单模型与分布式任务调度 — 热度算法、ZSet 排行榜、分布式锁、定时任务调度 → 收获:用 Redis ZSet 做实时榜单,并理解分布式锁的真实用法。
第三阶段:微服务
- 第10章 · 单体拆分微服务 — 微服务动机、模块化单体、gRPC/Protobuf、DDD、拆分四阶段 → 收获:知道"什么时候该拆、怎么拆",避免为拆而拆。
- 第11章 · 不停机数据迁移 — 双写、灰度、回滚、数据校验、Kafka 修复 → 收获:掌握线上数据"零停机迁移"这套生产硬本领。
- 第12章 · 服务注册与发现 — CAP 理论、注册中心对比、ETCD/Consul、gRPC Resolver → 收获:搞懂服务怎么互相找到对方,以及"客户端容错"为何是面试重点。
- 第13章 · 负载均衡 — 轮询/加权/一致性哈希算法、客户端 vs 服务端 LB、gRPC Picker → 收获:理解"把请求发给最合适的节点"背后的算法取舍。
- 第14章 · 服务治理:熔断限流降级 — 熔断器状态机、令牌桶/滑动窗口限流、降级策略 → 收获:拿到保护系统的"三板斧",知道级联故障怎么防。
- 第15章 · 支付服务设计 — 微信支付接入、幂等、对账、打赏功能、分账 → 收获:触碰真实支付链路,理解幂等和对账为什么是钱相关系统的命门。
第四阶段:高阶
- 第16章 · 评论与用户关系服务 — 树形评论、关注/粉丝关系、共同关注 → 收获:啃下"树形评论 + 关系链",这是社区类产品的数据骨架。
- 第17章 · ElasticSearch 与搜索服务 — 倒排索引、分词、相关性评分、搜索与标签服务 → 收获:用倒排索引把"按词找内容"做成像百度一样快。
- 第18章 · ELK 与 Canal — ELK 日志体系、Canal binlog 数据同步 → 收获:搭起日志大盘,并学会"伪装从库"实时同步数据库变更。
- 第19章 · Feed 流设计与压测 — 推/拉/推拉结合模型、Timeline 设计、k6 压测 → 收获:设计一个能扛百万粉丝的 Feed,并用压测把性能拐点压出来。
- 第20章 · 即时通讯 IM 服务 — WebSocket、消息可靠投递、离线消息、OpenIM → 收获:用长连接 + Kafka 做出群聊,理解分布式 IM 的跨节点转发。
- 第21章 · 课程总结与进阶路线 — 21章知识体系总纲、设计原则与模式、成长路线、面试速查 → 收获:把 21章串成一张能力地图,并拿到可复用的面试话术模板。
如何使用这些笔记
- 按章顺序学:内容前后有依赖,建议从第01章按顺序看,尤其是前 9章的工程化基础。
- 动手敲代码:每个文件都有可运行示例,建议边看边在自己项目里复现,不要只看不练。
- 结合视频:笔记是讲义的详细版,遇到看不懂的地方可以回看对应章的视频。
- 重点看「工程实践要点」和「小结」:这两节浓缩了生产经验的精华。
- 第21章当总纲:学完后回看第21章,它把整个知识体系串了起来,适合复习和面试。
前置知识清单
学完本课程你应当具备(或在学习中补齐)以下基础:
- Go 语言:goroutine/channel、interface、error 处理、context、模块管理(go mod)
- 数据库:MySQL 基本 SQL、索引、事务
- Linux 基础:常用命令、文件权限、进程管理
- 网络:HTTP 协议、TCP 三次握手、DNS
- 工具:Git 基本操作、Docker 基本用法
涉及的技术栈
| 类别 | 技术 |
|---|---|
| 语言/框架 | Go、Gin、GORM、gRPC、Protobuf |
| 存储 | MySQL、Redis、MongoDB、ElasticSearch |
| 消息队列 | Kafka |
| 可观测性 | Prometheus、Grafana、OpenTelemetry、ELK |
| 部署 | Docker、Kubernetes、Ingress |
| 注册中心 | ETCD、Consul、Nacos |
| 服务治理 | 熔断器、限流(令牌桶/滑动窗口)、降级 |
| 其他 | Canal(binlog 同步)、OpenIM、微信支付/登录 |