# 整个项目的架构文档

## 版本历史
| 版本 | 日期 | 作者 | 变更说明 |
|------|------|------|----------|
| 1.0 | 2024-01-20 | 产品团队 | 初始版本 |
| 1.1 | 2024-09-21 | 产品团队 | 更新项目结构，与实际代码结构保持一致 |

## 1. 项目概述

### 1.1 项目背景
本项目是一个综合性的养殖管理平台，旨在为养殖户、经销商和管理员提供全方位的数字化解决方案。

### 1.2 架构目标
- **高可用性**：系统可用性达到99.9%以上
- **高性能**：支持并发用户数10,000+
- **可扩展性**：支持水平扩展和垂直扩展
- **安全性**：符合数据安全和隐私保护要求
- **易维护性**：模块化设计，便于开发和维护

## 2. 系统架构概览

### 2.1 整体架构
```
┌─────────────────────────────────────────────────────────────┐
│                        用户层                                │
├─────────────────┬─────────────────┬─────────────────────────┤
│   小程序端      │    管理后台     │        官网             │
│  (mini-program) │ (admin-system)  │     (website)           │
└─────────────────┴─────────────────┴─────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────────┐
│                      网关层                                  │
│                   API Gateway                               │
└─────────────────────────────────────────────────────────────┘
                           │
┌─────────────────────────────────────────────────────────────┐
│                     业务服务层                               │
├─────────────┬─────────────┬─────────────┬─────────────────┤
│  用户服务   │  养殖服务   │  交易服务   │    其他服务     │
│ UserService │ FarmService │TradeService │   ...Service    │
└─────────────┴─────────────┴─────────────┴─────────────────┘
                           │
┌─────────────────────────────────────────────────────────────┐
│                     数据层                                   │
├─────────────┬─────────────┬─────────────┬─────────────────┤
│   MySQL     │    Redis    │   MongoDB   │   文件存储      │
│  (主数据库) │   (缓存)    │  (日志数据) │    (OSS)        │
└─────────────┴─────────────┴─────────────┴─────────────────┘
```

### 2.2 技术架构
- **前端技术栈**：Vue.js 3.x + Element Plus + Vite
- **小程序技术栈**：微信小程序原生开发 + 支付宝小程序
- **后端技术栈**：Node.js + Express + MySQL
- **数据库**：MySQL 8.0 + Redis (缓存)
- **部署架构**：Docker + Nginx + 云服务器

### 2.3 实际项目结构
```
xlxumu/
├── README.md                    # 项目入口文档
├── docs/                        # 文档目录
│   ├── requirements/           # 需求文档
│   ├── architecture/           # 架构文档
│   ├── design/                 # 详细设计文档
│   ├── development/            # 开发文档
│   └── operations/             # 运维文档
├── admin-system/               # 管理后台系统
│   ├── dashboard/              # 数据看板
│   ├── farming-management/     # 养殖管理
│   ├── cattle-trading/         # 牲畜交易
│   ├── bank-supervision/       # 银行监管
│   ├── insurance-supervision/  # 保险监管
│   ├── government-platform/    # 政府平台
│   └── mall-management/        # 商城管理
├── mini_program/               # 小程序应用
│   ├── farming-manager/        # 养殖管理小程序
│   ├── cattle-trading/         # 交易平台小程序
│   ├── beef-mall/              # 牛肉商城小程序
│   ├── bank-supervision/       # 银行监管小程序
│   └── insurance-supervision/  # 保险监管小程序
├── backend/                    # 后端服务
│   ├── api/                    # API服务
│   ├── database/               # 数据库管理
│   ├── services/               # 业务服务
│   └── utils/                  # 工具类
├── website/                    # 官方网站
├── scripts/                    # 脚本工具
└── deployment/                 # 部署配置
```

## 3. 系统分层架构

### 3.1 表现层 (Presentation Layer)
- **小程序端**：面向养殖户和经销商的移动端应用
- **管理后台**：面向管理员的Web管理界面
- **官网**：面向公众的企业官方网站

### 3.2 业务逻辑层 (Business Logic Layer)
- **用户管理服务**：用户注册、登录、权限管理
- **养殖管理服务**：养殖场管理、动物管理、饲料管理
- **交易管理服务**：订单管理、支付管理、物流管理
- **数据分析服务**：报表生成、数据统计、趋势分析

### 3.3 数据访问层 (Data Access Layer)
- **ORM框架**：Sequelize (MySQL) + Mongoose (MongoDB)
- **缓存层**：Redis 缓存策略
- **文件存储**：阿里云OSS对象存储

### 3.4 基础设施层 (Infrastructure Layer)
- **容器化**：Docker容器部署
- **编排**：Kubernetes集群管理
- **监控**：Prometheus + Grafana
- **日志**：ELK Stack (Elasticsearch + Logstash + Kibana)

## 4. 核心组件设计

### 4.1 API网关
- **功能**：路由转发、负载均衡、限流、认证
- **技术选型**：Nginx + Kong
- **特性**：
  - 统一入口管理
  - JWT Token验证
  - API版本控制
  - 请求限流和熔断

### 4.2 微服务架构
- **服务拆分原则**：按业务领域拆分
- **服务通信**：RESTful API + 消息队列
- **服务发现**：Consul
- **配置管理**：Apollo配置中心

### 4.3 数据库设计
- **主数据库**：MySQL 8.0 (用户数据、业务数据)
- **缓存数据库**：Redis 6.x (会话、热点数据)
- **文档数据库**：MongoDB 4.x (日志、统计数据)
- **数据同步**：Canal + Kafka

## 5. 安全架构

### 5.1 认证与授权
- **认证方式**：JWT Token + 微信授权
- **权限模型**：RBAC (基于角色的访问控制)
- **会话管理**：Redis存储会话信息

### 5.2 数据安全
- **数据加密**：敏感数据AES加密存储
- **传输安全**：HTTPS + SSL证书
- **数据备份**：定时备份 + 异地容灾

### 5.3 接口安全
- **参数验证**：输入参数严格校验
- **SQL注入防护**：ORM框架 + 参数化查询
- **XSS防护**：输出内容转义处理

## 6. 性能架构

### 6.1 缓存策略
- **多级缓存**：浏览器缓存 + CDN缓存 + Redis缓存
- **缓存更新**：主动更新 + 过期策略
- **缓存穿透**：布隆过滤器防护

### 6.2 数据库优化
- **读写分离**：主从复制架构
- **分库分表**：按业务和数据量分片
- **索引优化**：合理创建索引提升查询性能

### 6.3 负载均衡
- **前端负载均衡**：Nginx反向代理
- **服务负载均衡**：Kubernetes Service
- **数据库负载均衡**：MySQL Proxy

## 7. 部署架构

### 7.1 环境规划
- **开发环境**：本地Docker开发
- **测试环境**：Kubernetes测试集群
- **生产环境**：Kubernetes生产集群

### 7.2 容器化部署
- **镜像管理**：Harbor私有镜像仓库
- **容器编排**：Kubernetes + Helm
- **服务网格**：Istio (可选)

### 7.3 CI/CD流程
- **代码管理**：Git + GitLab
- **持续集成**：GitLab CI/CD
- **自动部署**：Kubernetes Rolling Update

## 8. 监控与运维

### 8.1 系统监控
- **基础监控**：Prometheus + Grafana
- **应用监控**：APM工具 (如：SkyWalking)
- **日志监控**：ELK Stack

### 8.2 告警机制
- **告警规则**：基于阈值和趋势的告警
- **告警通道**：邮件 + 短信 + 钉钉
- **告警处理**：自动恢复 + 人工介入

### 8.3 运维自动化
- **自动扩缩容**：HPA (Horizontal Pod Autoscaler)
- **故障自愈**：健康检查 + 自动重启
- **备份恢复**：定时备份 + 一键恢复

## 9. 技术选型说明

### 9.1 前端技术选型
- **Vue.js 3.x**：组件化开发，生态完善
- **Element Plus**：成熟的UI组件库
- **TypeScript**：类型安全，提升开发效率

### 9.2 后端技术选型
- **Node.js**：高并发处理能力，JavaScript全栈
- **Express**：轻量级Web框架
- **TypeScript**：类型安全，便于维护

### 9.3 数据库选型
- **MySQL**：成熟稳定，ACID特性
- **Redis**：高性能缓存，丰富数据结构
- **MongoDB**：文档存储，适合日志数据

## 10. 扩展性设计

### 10.1 水平扩展
- **无状态服务**：服务设计为无状态，便于扩展
- **数据分片**：支持数据库水平分片
- **缓存集群**：Redis集群模式

### 10.2 垂直扩展
- **资源配置**：支持CPU、内存动态调整
- **存储扩展**：支持存储容量在线扩展
- **网络优化**：支持带宽升级

## 11. 风险评估

### 11.1 技术风险
- **单点故障**：通过集群部署和冗余设计规避
- **性能瓶颈**：通过压力测试和性能优化预防
- **数据丢失**：通过备份策略和容灾方案保障

### 11.2 业务风险
- **并发冲突**：通过分布式锁和事务控制
- **数据一致性**：通过分布式事务和最终一致性
- **安全漏洞**：通过安全审计和渗透测试

## 12. 未来规划

### 12.1 技术演进
- **微服务治理**：引入Service Mesh
- **云原生**：全面拥抱云原生技术
- **AI集成**：集成机器学习和人工智能

### 12.2 业务扩展
- **多租户**：支持多租户SaaS模式
- **国际化**：支持多语言和多地区
- **生态集成**：与第三方系统深度集成