Gin 结构化日志与链路追踪:zap + OpenTelemetry
用 zap 替换默认日志产出 JSON,写中间件记录方法、路径、耗时、状态码和 trace_id,再接 OpenTelemetry 把一次请求跨服务串成一条链路。
用 zap 替换默认日志产出 JSON,写中间件记录方法、路径、耗时、状态码和 trace_id,再接 OpenTelemetry 把一次请求跨服务串成一条链路。
在 Gin 里用 gorilla/websocket 升级连接,搭一个 Hub 广播房间,读写分协程、用心跳保活,再把 nginx 反代和上线注意点讲清。
用 httptest 起一个内存 HTTP 请求打 Gin handler,testify 做断言,配合接口 mock service 把数据库挡在测试外,覆盖参数校验、鉴权中间件和正常流程。
用 go-redis 接 Redis,落地 Cache-Aside 模式,做详情与列表缓存、写时失效、singleflight 防击穿,把热点读请求挡在数据库前。
用 viper 管理多环境配置,实现信号驱动的优雅停机,再给一套多阶段 Dockerfile 和 nginx 反代,把 Gin 服务真正上线。
用 GORM 连接 MySQL,配置连接池,做 AutoMigrate、CRUD、事务和预加载,并接进第 5 篇的分层结构。
用 jwt-go 签发带自定义 Claims 的 token,写登录接口,做 Auth 中间件解析校验,再补一个刷新 token 的流程。
用路由组管理版本前缀,再把项目拆成 controller、service、repository 三层,用构造函数做依赖注入,给一个完整的用户模块示例。
用统一 Result 结构封装成功和失败响应,写一个 Recovery 中间件把 panic 转成标准错误,再设计一套业务错误码。
讲清 Gin 中间件的注册方式、Next 与 Abort 的控制流,手撸一个耗时统计中间件,再接上 Recovery、CORS 和简单限流。