# 系统架构设计文档 ## 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作为辅助技术,能够充分发挥各自优势,构建一个稳定、高效的畜牧管理系统。