# 系统架构设计文档
## 1. 概述
本项目采用前后端分离的架构设计,后端基于双技术栈(Java Spring Boot + Node.js)的微服务架构,前端采用Vue.js和Nuxt.js技术栈,支持Web端和微信小程序等多种客户端。
## 2. 技术栈
### 2.1 前端技术栈
- **管理后台**: Vue 3 + Element Plus
- **用户端**: Nuxt 3 (SSR)
- **微信小程序**: 微信小程序原生开发
- **构建工具**: Vite, Webpack
- **状态管理**: Pinia, Vuex
- **HTTP客户端**: Axios
### 2.2 后端技术栈
#### 2.2.1 Java技术栈(主要)
- **核心框架**: Spring Boot 2.7.x, Spring Cloud 2021.x
- **服务注册与发现**: Eureka
- **配置中心**: Spring Cloud Config
- **API网关**: Spring Cloud Gateway
- **数据库**: MySQL 8.0, Spring Data JPA
- **缓存**: Redis
- **消息队列**: RabbitMQ
- **安全框架**: Spring Security + JWT
- **构建工具**: Maven 3.8.x
#### 2.2.2 Node.js技术栈(辅助)
- **运行环境**: Node.js 16.x
- **Web框架**: Express.js
- **数据库**: MySQL 8.0
- **ORM**: Sequelize
- **构建工具**: NPM/Yarn
### 2.3 基础设施
- **容器化**: Docker
- **容器编排**: Kubernetes
- **反向代理**: Nginx
- **监控**: Prometheus + Grafana
- **日志**: ELK Stack (Elasticsearch, Logstash, Kibana)
- **CI/CD**: Jenkins
## 3. 系统架构图
```mermaid
graph TB
subgraph "客户端层"
A[Web浏览器] --> B[管理后台 admin-system]
C[Web浏览器] --> D[用户端 frontend]
E[微信客户端] --> F[微信小程序 miniprogram]
end
subgraph "网关层"
G[API网关 gateway]
end
subgraph "服务注册与配置中心"
H[Eureka注册中心 registry]
I[Config配置中心 config-server]
end
subgraph "核心业务服务层(Java)"
J[养殖管理服务
farming-service:8081]
K[用户中心服务
user-center-service:8082]
L[交易服务
trade-service:8083]
M[金融服务
finance-service:8084]
N[数据平台服务
data-platform-service:8085]
O[政务服务
government-service:8086]
P[大屏服务
dashboard-service:8087]
Q[商城服务
mall-service:8088]
end
subgraph "辅助业务服务层(Node.js)"
R[AI能力服务
ai-service:3001]
S[部分遗留服务
legacy-service:3002]
end
subgraph "数据存储层"
T[MySQL主数据库]
U[Redis缓存]
V[RabbitMQ消息队列]
end
subgraph "基础设施层"
W[Docker容器]
X[Kubernetes集群]
Y[Nginx反向代理]
end
B --> G
D --> G
F --> G
G --> H
G --> J
G --> K
G --> L
G --> M
G --> N
G --> O
G --> P
G --> Q
G --> R
G --> S
J --> T
K --> T
L --> T
M --> T
N --> T
O --> T
P --> T
Q --> T
R --> T
S --> T
J --> U
K --> U
L --> U
M --> U
N --> U
O --> U
P --> U
Q --> U
R --> U
S --> U
J --> V
K --> V
L --> V
M --> V
N --> V
O --> V
P --> V
Q --> V
R --> V
S --> V
H --> W
I --> W
J --> W
K --> W
L --> W
M --> W
N --> W
O --> W
P --> W
Q --> W
R --> W
S --> W
T --> W
U --> W
V --> W
W --> X
X --> Y
```
## 4. 前端架构
### 4.1 管理后台 (admin-system)
- 基于Vue 3和Element Plus构建
- 采用组件化开发模式
- 使用Vue Router管理路由
- 使用Pinia进行状态管理
- 通过Axios与后端API通信
### 4.2 用户端 (frontend)
- 基于Nuxt 3构建,支持SSR
- 采用模块化架构设计
- 使用Vue Router管理路由
- 使用Vuex进行状态管理
- 通过Axios与后端API通信
### 4.3 微信小程序 (miniprogram)
- 基于微信小程序原生开发
- 采用页面+组件的结构
- 使用微信提供的API和组件
- 通过wx.request与后端API通信
## 5. 后端架构
### 5.1 微服务架构
系统采用微服务架构设计,将业务功能拆分为独立的服务:
#### 5.1.1 Java微服务(主要)
1. **养殖管理服务 (farming-service:8081)**
- 功能:养殖场管理、牲畜档案、饲养记录等
- 技术:Spring Boot, Spring Data JPA
2. **用户中心服务 (user-center-service:8082)**
- 功能:用户管理、权限控制、认证授权等
- 技术:Spring Boot, Spring Security, JWT
3. **交易服务 (trade-service:8083)**
- 功能:活牛交易、订单管理、支付处理等
- 技术:Spring Boot, Spring Data JPA
4. **金融服务 (finance-service:8084)**
- 功能:贷款申请、保险购买、金融产品等
- 技术:Spring Boot, Spring Data JPA
5. **数据平台服务 (data-platform-service:8085)**
- 功能:数据统计、报表生成、数据分析等
- 技术:Spring Boot, Spring Data JPA
6. **政务服务 (government-service:8086)**
- 功能:政策发布、监管上报、审批流程等
- 技术:Spring Boot, Spring Data JPA
7. **大屏服务 (dashboard-service:8087)**
- 功能:数据可视化、实时监控、大屏展示等
- 技术:Spring Boot, Spring Data JPA
8. **商城服务 (mall-service:8088)**
- 功能:商品管理、购物车、订单处理等
- 技术:Spring Boot, Spring Data JPA
#### 5.1.2 Node.js服务(辅助)
1. **AI能力服务 (ai-service:3001)**
- 功能:图像识别、智能分析等AI相关功能
- 技术:Node.js, Express.js
2. **遗留服务 (legacy-service:3002)**
- 功能:部分原有系统功能的兼容
- 技术:Node.js, Express.js
### 5.2 核心组件
#### 5.2.1 API网关 (gateway)
- 技术:Spring Cloud Gateway
- 功能:
- 请求路由转发
- 负载均衡
- 认证鉴权
- 限流熔断
- 日志记录
#### 5.2.2 服务注册中心 (registry)
- 技术:Eureka Server
- 功能:
- 服务注册与发现
- 服务健康检查
- 服务状态监控
#### 5.2.3 配置中心 (config-server)
- 技术:Spring Cloud Config
- 功能:
- 集中化配置管理
- 配置动态刷新
- 环境隔离配置
## 6. 数据架构
### 6.1 数据库设计
- **主数据库**: MySQL 8.0
- **读写分离**: 主从复制
- **分库分表**: 根据业务模块分库
- **索引优化**: 合理设计索引提升查询性能
### 6.2 缓存设计
- **缓存技术**: Redis
- **缓存策略**:
- 热点数据缓存
- 会话缓存
- 分布式锁
- **缓存更新**: 通过消息队列实现缓存同步
### 6.3 消息队列
- **消息中间件**: RabbitMQ
- **应用场景**:
- 异步处理
- 服务解耦
- 流量削峰
- 日志收集
## 7. 安全架构
### 7.1 认证授权
- **认证方式**: JWT Token
- **授权机制**: RBAC权限模型
- **安全传输**: HTTPS加密
- **密码安全**: BCrypt加密存储
### 7.2 数据安全
- **数据传输**: SSL/TLS加密
- **数据存储**: 敏感信息加密
- **访问控制**: 基于角色的访问控制
- **审计日志**: 关键操作日志记录
## 8. 部署架构
### 8.1 容器化部署
- **容器技术**: Docker
- **镜像管理**: Harbor私有镜像仓库
- **容器编排**: Kubernetes
- **服务发现**: Kubernetes Service
### 8.2 负载均衡
- **反向代理**: Nginx
- **负载策略**: 轮询、权重、IP哈希
- **健康检查**: 定期检查服务状态
- **SSL终止**: Nginx处理SSL加密解密
### 8.3 监控告警
- **指标监控**: Prometheus
- **可视化**: Grafana
- **日志收集**: ELK Stack
- **告警机制**: 邮件、短信、微信通知
## 9. 性能优化策略
### 9.1 前端优化
- **资源压缩**: JS/CSS压缩合并
- **图片优化**: WebP格式、懒加载
- **缓存策略**: HTTP缓存、浏览器缓存
- **代码分割**: 路由懒加载、组件懒加载
### 9.2 后端优化
- **数据库优化**: 索引优化、查询优化
- **缓存优化**: 多级缓存、缓存预热
- **接口优化**: 接口合并、数据批量处理
- **异步处理**: 消息队列异步处理耗时操作
### 9.3 网络优化
- **CDN加速**: 静态资源CDN分发
- **压缩传输**: Gzip压缩
- **连接复用**: HTTP/2协议
- **边缘计算**: 靠近用户的边缘节点处理
## 10. 扩展性设计
### 10.1 水平扩展
- **服务拆分**: 微服务架构支持独立扩展
- **数据库扩展**: 读写分离、分库分表
- **缓存扩展**: Redis集群
- **消息队列扩展**: RabbitMQ集群
### 10.2 弹性伸缩
- **自动扩缩容**: Kubernetes HPA
- **资源监控**: 实时监控资源使用情况
- **负载均衡**: 动态调整流量分配
- **故障自愈**: 自动重启失败服务
## 11. 高可用设计
### 11.1 服务高可用
- **多实例部署**: 关键服务多实例运行
- **故障转移**: 服务故障自动切换
- **健康检查**: 定期检查服务状态
- **超时重试**: 网络异常自动重试
### 11.2 数据高可用
- **数据备份**: 定期备份重要数据
- **主从复制**: 数据库主从同步
- **灾难恢复**: 制定数据恢复预案
- **一致性保证**: 分布式事务处理
## 12. 总结
本系统采用现代化的微服务架构设计,通过合理的技术选型和架构规划,能够满足畜牧管理系统的业务需求,具备良好的可扩展性、可维护性和高可用性。Java技术栈作为主要后端技术,Node.js作为辅助技术,能够充分发挥各自优势,构建一个稳定、高效的畜牧管理系统。