--- title: 什么是MengStack | 架构设计与核心特性介绍 - MengStack官方文档 --- # 什么是 MengStack MengStack 是一个基于 Go 语言的企业级微服务开发框架,采用模块化架构设计,提供多租户、认证授权、配置管理等开箱即用的基础能力。作为面向云原生与 AI 时代的一站式全栈开发底座,MengStack 整合主流开源技术能力,帮助开发者快速搭建企业级后端服务。 ## 设计理念 ### 为什么选择 Go? Go 语言以其简洁的语法、高效的并发模型和快速的编译速度,成为构建现代后端服务的理想选择。MengStack 充分利用 Go 的生态和特性: - **高性能**:Go 的 goroutine 和 channel 提供轻量级并发 - **强类型**:编译期发现错误,减少运行时意外 - **标准库丰富**:net/http、encoding/json 等开箱即用 - **生态成熟**:Gin、GORM、Zap 等优秀第三方库 ### 为什么模块化? 传统的分层架构(Controller → Service → Repository)在项目规模增长后容易出现: - 模块间边界模糊,耦合严重 - 删除一个功能需要改动多个层 - 难以独立测试和替换 MengStack 的[三层隔离架构](/guide/architecture)让每个业务模块都是自包含的,模块间通过明确的接口通信。每个模块遵循[四层模式](/guide/module-pattern)(Domain / Application / Infrastructure / Interfaces),确保依赖方向单一。 ## 核心特性 | 特性 | 说明 | |------|------| | 三层隔离 | Kernel / App / Modules 层间依赖方向单一,详见[架构设计](/guide/architecture) | | 四层模块 | Domain / Application / Infrastructure / Interfaces,详见[模块模式](/guide/module-pattern) | | 多租户 | 基于 Header 的租户隔离,数据自动过滤,详见[多租户系统](/guide/multi-tenancy) | | JWT 认证 | Access Token + Refresh Token 双令牌机制,详见[认证与授权](/guide/auth) | | 依赖注入 | uber-go/fx 自动管理组件生命周期,详见[依赖注入](/guide/dependency-injection) | | API 文档 | swaggo 注解驱动,自动生成 Swagger UI | | 配置管理 | Viper 分层配置,支持环境变量覆盖,详见[配置管理](/guide/configuration) | | 结构化日志 | Zap 结构化输出,请求级 trace_id | | Docker 部署 | 开箱即用的 docker-compose,详见[Docker 部署](/guide/docker-deploy) | ## 适用场景 - **SaaS 平台**:[多租户隔离](/guide/multi-tenancy)开箱即用 - **中后台系统**:[认证](/guide/auth)、权限、审计日志完备 - **微服务集群**:模块化设计便于拆分和独立部署 - **开源项目**:清晰的架构便于社区贡献 ## 技术栈 | 组件 | 选型 | 用途 | |------|------|------| | Web 框架 | Gin | HTTP 路由和中间件 | | ORM | GORM | 数据库操作 | | 数据库 | PostgreSQL | 主数据存储 | | 缓存 | Redis | 缓存和会话管理 | | 认证 | golang-jwt | JWT 令牌生成和验证 | | DI | uber-go/fx | 依赖注入 | | 配置 | Viper | 配置加载和管理 | | 日志 | Zap | 结构化日志 | | API 文档 | swaggo | Swagger 文档生成 | | 容器化 | Docker Compose | 开发和部署环境 | ## 快速开始 准备好开始使用 MengStack?查看[快速开始指南](/guide/getting-started),5 分钟即可跑通第一个项目。也可以访问[在线演示](/demo)直接体验 API 接口能力。