refactor(backend): 更新数据库配置并迁移至MySQL,优化文档和技术栈描述

This commit is contained in:
ylweng
2025-09-01 01:07:12 +08:00
parent cbee609e78
commit e767d1ab27
13 changed files with 736 additions and 236 deletions

View File

@@ -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 选型理由与对比分析