·vincent
数据分析系统技术文档
魔兽世界拍卖行数据分析系统技术文档
node
1. 项目架构说明
这是一个基于 NestJS 框架开发的后端服务项目,主要用于魔兽世界拍卖行数据分析系统。
2. 项目结构
ts
1/auction_analyes
2├── src/ # 源代码目录
3│ ├── app.module.ts # 根模块
4│ ├── main.ts # 应用程序入口
5│ ├── cache/ # 缓存相关模块
6│ ├── config/ # 配置文件
7│ ├── core/ # 核心业务模块
8│ ├── decorators/ # 自定义装饰器
9│ ├── guard/ # 守卫
10│ ├── intercept/ # 拦截器
11│ ├── interfaces/ # 接口定义
12│ ├── middlewares/ # 中间件
13│ ├── migrations/ # 数据库迁移
14│ ├── pipes/ # 管道
15│ ├── templates/ # 模板文件
16│ └── utils/ # 工具函数
3. 核心模块分析
3.1 数据存储
- 数据库: 使用 MariaDB 作为主数据库
- 缓存: 使用 Redis 作为缓存层
- 对象存储: 同时集成了阿里云 OSS 和七牛云存储服务
3.2 核心业务模块 ()
- 拍卖行历史 ()
- 区域管理 ()
- 权限管理 ()
- 定时任务 ()
4. 技术特性
4.1 权限系统
实现了基于会员等级的细粒度权限控制:
- 支持不同会员等级(FREE、SILVER、GOLD、DIAMOND)
- 针对不同资源类型的访问控制
- 支持每日/每月使用限制
4.2 缓存策略
采用多级缓存策略:
- Redis 作为主要缓存层
- 实现了自定义缓存管理器
- 支持按区域和阵营的数据缓存
4.3 数据归档
实现了自动化的数据归档机制:
- 定期将历史数据归档到 summary 表
- 支持按月归档历史数据
- 自动备份关键数据表
4.4 系统配置
- 支持多环境配置(development、stage、production)
- 使用 dotenv 进行环境变量管理
- 集成了邮件服务、对象存储等第三方服务配置
5. 部署相关
- 使用 Docker 进行容器化部署
- 提供了完整的 docker-compose 配置
- 支持服务编排和资源限制
6. 开发工具支持
- TypeScript 作为开发语言
- ESLint 和 Prettier 用于代码规范
- Jest 用于单元测试
- 使用 Swagger 进行 API 文档管理
这个项目采用了典型的 NestJS 分层架构,同时结合了缓存、权限、数据归档等特性,形成了一个完整的拍卖行数据分析系统。