3.3 KiB
3.3 KiB
| 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 的三层隔离架构让每个业务模块都是自包含的,模块间通过明确的接口通信。每个模块遵循四层模式(Domain / Application / Infrastructure / Interfaces),确保依赖方向单一。
核心特性
| 特性 | 说明 |
|---|---|
| 三层隔离 | Kernel / App / Modules 层间依赖方向单一,详见架构设计 |
| 四层模块 | Domain / Application / Infrastructure / Interfaces,详见模块模式 |
| 多租户 | 基于 Header 的租户隔离,数据自动过滤,详见多租户系统 |
| JWT 认证 | Access Token + Refresh Token 双令牌机制,详见认证与授权 |
| 依赖注入 | uber-go/fx 自动管理组件生命周期,详见依赖注入 |
| API 文档 | swaggo 注解驱动,自动生成 Swagger UI |
| 配置管理 | Viper 分层配置,支持环境变量覆盖,详见配置管理 |
| 结构化日志 | Zap 结构化输出,请求级 trace_id |
| Docker 部署 | 开箱即用的 docker-compose,详见Docker 部署 |
适用场景
技术栈
| 组件 | 选型 | 用途 |
|---|---|---|
| Web 框架 | Gin | HTTP 路由和中间件 |
| ORM | GORM | 数据库操作 |
| 数据库 | PostgreSQL | 主数据存储 |
| 缓存 | Redis | 缓存和会话管理 |
| 认证 | golang-jwt | JWT 令牌生成和验证 |
| DI | uber-go/fx | 依赖注入 |
| 配置 | Viper | 配置加载和管理 |
| 日志 | Zap | 结构化日志 |
| API 文档 | swaggo | Swagger 文档生成 |
| 容器化 | Docker Compose | 开发和部署环境 |
快速开始
准备好开始使用 MengStack?查看快速开始指南,5 分钟即可跑通第一个项目。也可以访问在线演示直接体验 API 接口能力。