主题
33 · 微服务框架扫读与总复盘
目标:在已具备 Gin/Redis/MQ/gRPC/可观测/K8s 心智后,扫读主流 Go 微服务框架的定位;并完成 11~33 总复盘。
前置:建议至少完成 18、22、23/24、28、30;32 可读概念。
原则:框架最后学,避免被脚手架淹没;官方文档扫读,不暑假重写 Journal。
1. 为何排到最后
框架帮你打包:配置、治理、RPC、限流、代码生成……
若中间件概念未立,框架只是「更多魔法」。
text
你已有:Gin 生产栈 + Redis + Docker +(MQ/任务)+ gRPC + Metrics/Trace + K8s 对象
框架给:约定目录、生成工具、服务发现/治理插件化1
2
2
2. 常见框架扫读地图(选 1~2 个点进去)
| 框架 | 气质 | 官方入口 | 暑假怎么读 |
|---|---|---|---|
| go-zero | 工具强、生成 API/RPC、落地多 | 文档 + quick start | 跟一遍生成 HTTP+RPC |
| Kratos | Bilibili 系、模块清晰、可插拔 | 文档 + layout | 看目录与 transport |
| Kitex | 字节 RPC 向 | CloudWeGo 文档 | 与 28 对照即可 |
| Go-kit | 经典「工具包」非全家桶 | 官网 | 理解 endpoint/middleware 思想 |
| Micro / 其他 | 生态变迁快 | 慎追版本 | 知悉即可 |
扫读产出(每框架半页笔记):
- 解决什么痛点?
- 默认传输:HTTP / gRPC?
- 配置与治理(限流、熔断)在哪配?
- 与「手写 Gin + 自管中间件」的差异一句话。
3. 手帐场景:要不要上微服务?
| 单体(推荐暑假) | 硬拆微服务 |
|---|---|
| 一个 notesapi 进程 | 用户 / 手帐 / 搜索 / AI 多仓 |
| 部署简单、调试快 | 要网关、发现、分布式事务心智 |
| 简历讲清中间件即可 | 无流量时拆 = 自找罪 |
结论:能力按微服务练,交付保持可运行单体或「模块化单体」。真要拆:先 gRPC 边界清晰,再框架。
4. 总复盘:能力清单
对照 11 · 路线图:
| # | 能力 | 自检 |
|---|---|---|
| 12~18 | 生产级 HTTP API | □ 串烧可测 |
| 19~21 | Redis | □ 场景能口述 |
| 22 | 容器化 | □ Compose 一键起 |
| 23~25 | 异步与定时 | □ 同步削峰 |
| 26~27 | 文件与搜索 | □ 预签名 / 倒排 |
| 28~29 | RPC 与事件流 | □ 知选型 |
| 30~31 | 可观测 | □ RED + 一条 Trace |
| 32 | 编排入门 | □ Deployment/Service |
| 33 | 框架扫读 | □ 半页笔记 |
5. 简历 STAR 拼装(示例口径)
独立完成 Go 笔记 API:Gin+GORM+JWT;Redis 做缓存与限流;Asynq 异步导出;MinIO 存文件;Prometheus 暴露 RED;Compose 本地一键依赖;并在 kind 上完成 Deployment 滚动更新。按需调研 gRPC/Kafka,未过早微服务化。
按你真实做过的打勾改写;没跑过的组件不要写「精通」。
6. 暑假后怎么续
| 方向 | 下一动作 |
|---|---|
| 加深 | 把 18 练手仓持续加中间件,而不是新开十个空仓 |
| 算法主线 | 中间件维持周里程碑 |
| Journal | 概念对照 docs/spec/;不强制迁移栈 |
| 框架 | 工作需要再精读一个(go-zero 或 Kratos) |
7. 常见坑 + AI 审查
| 坑 | 说明 |
|---|---|
| 第一周就上 Kratos 全家桶 | 违反路线图 |
| 扫读变成抄生成代码不读 | 对照 12~31 概念 |
| AI 鼓吹「必须微服务」 | 用本节表反驳 |
| 清单全勾但无 demo | 每个 ⭐⭐⭐⭐ 至少一可跑痕迹 |
8. 系列收束
- 基础入口:go/README
- 架构主线:11 · 全栈中间件路线图
- 下一实践:回到你的练手仓,选一个「本周可演示」的缺口补上(导出 / 指标 / Compose 均可)
恭喜走完目录;真正的架构感来自反复在真实问题里做取舍,而不是读完 33 篇。
