v3.2.0 Production Ready · 基于 Gin 1.12 构建

The Go framework
built for serious systems.

ThinkGin 基于 Gin 构建,把配置、日志、监控、链路追踪与优雅停机收进一套统一秩序。性能是门槛,秩序才是护城河。

go run main.go  ·  Listening on :8000
~/thinkgin — zsh
$go run main.go
[GIN-debug] GET / --> thinkgin/app/index/controller.Hello [GIN-debug] GET /index/hello --> thinkgin/app/index/controller.Hello [GIN-debug] GET /metrics --> prometheus.Handler [GIN-debug] GET /livez --> kubernetes.Probe [GIN-debug] GET /readyz --> readyz (probes DB + Redis) [GIN-debug] POST /api/v1/login --> JWTIssue [GIN-debug] GET /api/v1/me --> JWTAuth + SessionMiddleware session driver = memory · tracer = otlp framework initialized · shutdown timeout = 10s Listening and serving HTTP on :8000
$
Version
3.2.0
Logger接口 + HTTPS + 依赖注入 + 6大新中间件
Runtime
Go 1.25+
对齐 Gin 1.12 与最新 标准库
Config
YAML
模块化配置,多环境部署
Shutdown
10s
优雅停机超时,面向生产

性能之外,真正让系统可维护的能力。

一个框架是否值得投入,不在它能不能跑 benchmark,而在它能不能在三年后依然被团队维护、被 SRE 监控、被新人看懂。

Gin-powered 路由

保留 Gin 的高性能 HTTP 路由,并在其上建立统一的中间件、上下文与生命周期模型。

模块化 YAML 配置

app / server / database / log / prometheus 各司其职,不再把设置挤进同一个巨大的配置文件。

抽象日志接口

Logger 接口解耦具体实现,内置 logrus + slog 双适配器,WithFields 线程安全,支持热插拔。

Prometheus 监控

HTTP 指标、系统指标、业务指标三件套,scope / route 标签让 label 不会爆炸。

分布式追踪

Jaeger / Zipkin / OpenTelemetry 原生集成,跨服务链路一目了然。

优雅停机 & 真实探针

/livez 仅验证进程存活,/readyz 并发 Ping DB / Redis,任一依赖不可达返 503。

JWT + Session

HS256 签发与校验,严格拒绝 alg=none;Session 自带 memory / redis 双 driver, Cookie 安全标志自动透传。

脚手架 CLI

go run ./cmd/scaffold new module user 一条命令生成 controller / model / view,取代重复手工创建文件的仪式感。

零依赖启动

默认配置不预置任何真实连接,go run main.go 立即摆手;需要 DB / Redis 时从配置文件注释块按需放开。

HTTPS + CSRF + 安全头

HTTP/HTTPS 双监听、CSRF 双重提交 Cookie 防护、Gzip 压缩、X-Frame-Options 等安全响应头,一键启用。

Swagger / OpenAPI

零 Go 依赖的 Swagger UI 端点,维护 docs/openapi.yaml 即可在 /swagger/ 预览完整 API 文档。

配置热更新 + i18n

fsnotify 监听 YAML 变更自动重载;i18n 运行时支持 Accept-Language 检测与模板变量翻译。

数据库迁移 + Redis 限流

GORM 迁移管理器 Up/Down/Rollback/Status 全流程;Redis Lua 原子令牌桶分布式限流,故障自动降级。

从请求进入,到服务退出,链路始终可解释。

Route 负责入口,Middleware 处理横切,Controller 保持轻薄,业务沉在 Model / Service。外层由配置和可观测性统一治理。

分层,是为了让秩序被看见。

不是纸面架构,而是真正把关注点分开:每一层都能被独立替换、独立测试、独立观测。

Router Middleware Controller Model Prometheus Graceful Shutdown
01
HTTP Request → Router

请求进入 Gin 路由层,完成路径匹配与上下文构建。

entry
02
Middleware

处理日志、安全、限流、追踪等横切关注点。

cross
03
Controller → Model

控制器保持轻薄,业务与数据访问沉淀到服务层。

core
04
Response → Graceful Shutdown

统一输出响应,借助上下文与超时完成优雅退出。

exit
thinkgin / main.go Real Entry
// 真实的服务启动入口
config := app.GetConfig()
logger := app.GetLogger()

appInstance, err := framework.New(
    framework.WithConfig(config),
    framework.WithLogger(logger),
    framework.WithShutdownTimeout(10*time.Second),
)
if err != nil {
    logger.Fatalf("应用初始化失败: %v", err)
}

if err := appInstance.Run(ctx); err != nil {
    logger.Fatalf("服务运行失败: %v", err)
}

准备好把它用在你的下一个生产服务里。

十秒上手示例、模块化配置、监控与部署方案,一份文档让你看见 ThinkGin 如何被设计、被组装、被交付到线上。