DC娱乐网

第17课(完结)|Go 后端上线收尾 Go 后端从 0 到 1 · 第 17 课

第17课(完结)|Go 后端上线收尾
Go 后端从 0 到 1 · 第 17 课|项目收尾与上线 🎉

从第 1 课的 Hello World,到今天能打包上线的 GoTodo,
整整 17 课,这一课把最后几块补齐,正式交付 ✅

📌 四个收尾动作
1️⃣ Swagger 文档:在 handler 上写注释,swag init 自动生成交互式 API 文档,
配 gin-swagger 后访问 /swagger/index.html 就能在线调接口,前端不用再追着你问
2️⃣ 优雅关闭:收到 SIGTERM 先处理完存量请求再退出
3️⃣ 健康检查:暴露 /healthz,给负载均衡和 K8s 探活用
4️⃣ 上线清单:配置、日志、监控逐项确认

💡 图 3 那 12 行优雅关闭
ListenAndServe 丢进 goroutine,主协程阻塞等信号;
收到 SIGINT / SIGTERM 后给 5 秒超时,srv.Shutdown(ctx) 停止接新请求、
等存量请求跑完再退出。
没有这段,每次发版都会有一批用户看到 502 😵

📋 上线前检查清单(照着过)
· 配置外置 —— 密钥、DSN 走环境变量,没有硬编码(第 14 课)
· 日志分级 —— 生产 JSON 格式,能被采集检索(第 14 课)
· panic 恢复 —— Recovery 中间件已注册(第 12 课)
· 健康检查 —— /healthz 可用,探活配好
· 优雅关闭 —— 发版不掉请求
· 监控告警 —— 接入监控,别等用户报障才知道服务挂了
· 数据库迁移 —— 生产别裸用 AutoMigrate(第 09 课)

⚠️ 两个小坑
· swag init 生成的 docs 包必须显式 import,否则文档页 404
· 改完注释要重新 swag init,文档不会自己更新

17 课全系列到此完结,GoTodo 从零到上线跑通了 🎊
翻我主页可以从第 01 课按顺序看,建议收藏当路线图 📌
想看下一个系列写什么?评论区告诉我 👇

Go语言 上线部署 运维 DevOps 编程学习 Neptia Soptia Soptia全球零售