refactor(backend): 更新数据库配置并迁移至MySQL,优化文档和技术栈描述
This commit is contained in:
@@ -4,35 +4,100 @@
|
||||
|
||||
### 1.1 架构图
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "客户端层"
|
||||
A[微信小程序 uni-app]
|
||||
B[后台管理系统 Vue 3 + Ant Design]
|
||||
C[官网系统 HTML5 + Bootstrap]
|
||||
end
|
||||
|
||||
subgraph "接入层"
|
||||
D[Express API Gateway]
|
||||
end
|
||||
|
||||
subgraph "应用服务层"
|
||||
E[认证服务]
|
||||
F[用户服务]
|
||||
G[旅行服务]
|
||||
H[动物服务]
|
||||
I[订单服务]
|
||||
J[管理员服务]
|
||||
end
|
||||
|
||||
subgraph "基础设施层"
|
||||
K[MySQL 数据库]
|
||||
L[Redis 缓存]
|
||||
M[RabbitMQ 消息队列]
|
||||
N[文件存储]
|
||||
end
|
||||
|
||||
subgraph "监控运维层"
|
||||
O[Swagger API 文档]
|
||||
P[Winston 日志系统]
|
||||
Q[健康检查监控]
|
||||
end
|
||||
|
||||
A --> D
|
||||
B --> D
|
||||
C --> D
|
||||
D --> E
|
||||
D --> F
|
||||
D --> G
|
||||
D --> H
|
||||
D --> I
|
||||
D --> J
|
||||
|
||||
E --> K
|
||||
F --> K
|
||||
G --> K
|
||||
H --> K
|
||||
I --> K
|
||||
J --> K
|
||||
|
||||
E --> L
|
||||
F --> L
|
||||
G --> L
|
||||
|
||||
I --> M
|
||||
|
||||
E --> N
|
||||
F --> N
|
||||
H --> N
|
||||
|
||||
D --> O
|
||||
D --> P
|
||||
D --> Q
|
||||
```
|
||||
|
||||
**系统架构层次说明:**
|
||||
|
||||
**1. 客户端层**
|
||||
- **微信小程序**: 基于uni-app开发,提供用户端功能
|
||||
- **后台管理系统**: 基于Vue.js 3 + Ant Design开发,提供管理功能
|
||||
- **后台管理系统**: 基于Vue.js 3 + TypeScript + Ant Design Vue + Pinia开发,提供管理功能
|
||||
- **官网系统**: 基于HTML5 + Bootstrap开发,提供企业宣传功能
|
||||
|
||||
**2. 接入层**
|
||||
- **API网关**: 基于Nginx + Node.js,提供统一的API接入和路由分发
|
||||
- **API网关**: 基于Express.js框架,提供统一的API接入、路由分发、安全防护和请求处理,所有API路径前缀为`/api/v1`
|
||||
|
||||
**3. 应用服务层**
|
||||
- **认证服务**: 用户身份认证和权限管理
|
||||
- **用户服务**: 用户信息管理和个人中心功能
|
||||
- **旅行服务**: 旅行计划创建、查询和匹配功能
|
||||
- **动物服务**: 动物信息管理和认领功能
|
||||
- **商家服务**: 商家认证、商品和服务管理
|
||||
- **支付服务**: 支付处理和交易管理
|
||||
- **推广服务**: 推广活动和奖励管理
|
||||
- **认证服务**: 用户身份认证、JWT令牌管理和权限控制
|
||||
- **用户服务**: 用户信息管理、个人中心功能和用户统计
|
||||
- **旅行服务**: 旅行计划创建、查询、匹配和管理功能
|
||||
- **动物服务**: 动物信息管理、认领流程和动物统计
|
||||
- **订单服务**: 订单创建、支付处理和交易管理
|
||||
- **管理员服务**: 管理员权限管理和系统配置
|
||||
|
||||
**4. 基础设施层**
|
||||
- **MySQL数据库**: 主从复制架构,存储核心业务数据
|
||||
- **Redis缓存**: 集群模式,提供高性能缓存服务
|
||||
- **RabbitMQ消息队列**: 异步消息处理和解耦
|
||||
- **对象存储**: 腾讯云COS,存储图片和文件资源
|
||||
- **MySQL数据库**: 单实例架构,存储核心业务数据,使用连接池优化性能(测试环境: 192.168.0.240:3306,生产环境: 129.211.213.226:9527)
|
||||
- **Redis缓存**: 单实例模式,提供会话管理和数据缓存服务
|
||||
- **RabbitMQ消息队列**: 异步消息处理和解耦(待实现)
|
||||
- **文件存储**: 本地文件系统,存储用户上传的图片和文件资源
|
||||
|
||||
**5. 监控运维层**
|
||||
- **监控系统**: Prometheus + Grafana,系统性能监控
|
||||
- **日志系统**: ELK Stack,日志收集和分析
|
||||
- **CI/CD**: Jenkins + Docker,持续集成和部署
|
||||
- **Swagger API文档**: 自动生成的API接口文档
|
||||
- **Winston日志系统**: 结构化日志记录和分析
|
||||
- **健康检查监控**: 系统状态监控和性能统计
|
||||
|
||||
**架构连接关系:**
|
||||
- 所有客户端通过API网关访问后端服务
|
||||
@@ -274,52 +339,36 @@
|
||||
## 2. 技术栈选型
|
||||
|
||||
### 2.1 后端技术栈
|
||||
API服务: Node.js + Express.js + TypeScript + RESTful API
|
||||
数据库: MySQL 8.0 (包含RBAC权限管理表结构)
|
||||
缓存系统: Redis Cluster
|
||||
消息队列: RabbitMQ(用于异步处理)
|
||||
文件存储: 腾讯云对象存储
|
||||
实时通信: WebSocket(用于实时通知和聊天功能)
|
||||
API文档: Swagger + OpenAPI 3.0
|
||||
权限管理: JWT + RBAC (基于角色的访问控制)
|
||||
### 2.2 前端技术栈
|
||||
|
||||
#### 微信小程序技术栈
|
||||
- **开发框架**: uni-app
|
||||
- **开发语言**: JavaScript/TypeScript
|
||||
- **UI框架**: WeUI
|
||||
- **状态管理**: Redux
|
||||
- **构建工具**: Webpack
|
||||
- **包管理**: npm/yarn
|
||||
| 技术组件 | 版本 | 用途 | 选型理由 |
|
||||
|---------|------|------|----------|
|
||||
| Node.js | >=16.0.0 | 运行时环境 | 高性能、异步I/O、丰富的生态系统 |
|
||||
| Express.js | ^4.18.2 | Web框架 | 轻量级、灵活、中间件生态丰富 |
|
||||
| MySQL2 | ^3.14.3 | 数据库驱动 | 支持Promise、连接池、性能优化 |
|
||||
| JWT | ^9.0.2 | 身份认证 | 无状态、安全、易于分布式部署 |
|
||||
| bcryptjs | ^2.4.3 | 密码加密 | 安全性高、性能适中 |
|
||||
| Redis | ^5.8.2 | 缓存/会话 | 内存存储、高性能、支持数据结构 |
|
||||
| RabbitMQ | ^0.10.9 | 消息队列 | 异步处理、系统解耦(待实现) |
|
||||
| Swagger | ^6.2.8 | API文档 | 自动化文档、接口测试 |
|
||||
| Winston | ^3.11.0 | 日志系统 | 结构化日志、多传输方式 |
|
||||
|
||||
#### 后台管理系统技术栈 (Vue.js 3 + TypeScript + Ant Design Vue + Pinia)
|
||||
- **核心框架**: Vue.js 3.3.0 (Composition API + `<script setup>`语法)
|
||||
- **开发语言**: TypeScript 5.0.0 (严格模式 + 完整类型系统)
|
||||
- **UI组件库**: Ant Design Vue 4.0.0 (企业级UI设计规范)
|
||||
- **状态管理**: Pinia 2.1.0 (轻量级、类型安全的Vue状态管理)
|
||||
- **路由管理**: Vue Router 4.x (支持TypeScript的类型安全路由)
|
||||
- **构建工具**: Vite 4.x (快速的开发服务器和热重载)
|
||||
- **包管理**: npm/yarn
|
||||
- **代码规范**: ESLint + Prettier (统一的代码风格和质量)
|
||||
- **测试框架**: Vitest + Vue Test Utils (单元测试和组件测试)
|
||||
### 2.2 安全防护
|
||||
|
||||
### 2.3 官网技术栈
|
||||
- 核心技术:HTML5 + Bootstrap
|
||||
- 开发语言:JavaScript
|
||||
- 构建工具:Webpack
|
||||
- 包管理:npm/yarn
|
||||
| 安全组件 | 版本 | 防护类型 |
|
||||
|----------|------|----------|
|
||||
| Helmet | ^7.1.0 | 安全头部 |
|
||||
| express-rate-limit | ^7.1.5 | 请求限流 |
|
||||
| xss-clean | ^0.1.4 | XSS防护 |
|
||||
| hpp | ^0.2.3 | 参数污染防护 |
|
||||
| express-mongo-sanitize | ^2.2.0 | NoSQL注入防护 |
|
||||
|
||||
### 2.3 数据库选型
|
||||
- 主数据库:MySQL 5.7
|
||||
- 权限管理:RBAC模型 (包含roles、permissions、role_permissions、user_roles表)
|
||||
### 2.3 前端技术栈
|
||||
|
||||
### 2.4 缓存选型
|
||||
- 分布式缓存:Redis Cluster
|
||||
- 本地缓存:Node.js内置缓存
|
||||
|
||||
### 2.5 消息队列选型
|
||||
- 消息中间件:RabbitMQ
|
||||
- 实时消息推送:WebSocket
|
||||
| 项目 | 技术栈 | 状态 |
|
||||
|------|--------|------|
|
||||
| 微信小程序 | uni-app + Vue 2 | 开发中 |
|
||||
| 后台管理系统 | Vue 3 + TypeScript + Ant Design Vue + Pinia | 开发中 |
|
||||
| 官网系统 | HTML5 + Bootstrap + JavaScript | 待开发 |
|
||||
|
||||
### 2.6 选型理由与对比分析
|
||||
|
||||
|
||||
Reference in New Issue
Block a user