69 lines
3.3 KiB
Markdown
69 lines
3.3 KiB
Markdown
---
|
||
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 接口能力。
|