Files
xlxumu/docs/design/ARCHITECTURE.md
ylweng f1273daeac docs: 重构API文档和系统架构文档,统一技术栈规范docs(architecture): 更新系统架构设计文档
- 重新组织文档结构,优化标题层级
- 添加系统架构图,直观展示系统组成- 补充前端架构、后端架构、数据架构等详细内容
- 更新安全架构、部署架构、性能优化策略等章节
- 增加扩展性设计和高可用设计章节
- 总结系统架构设计特点和优势
2025-09-11 01:04:51 +08:00

9.2 KiB
Raw Blame History

系统架构设计文档

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. 系统架构图

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[养殖管理服务<br/>farming-service:8081]
        K[用户中心服务<br/>user-center-service:8082]
        L[交易服务<br/>trade-service:8083]
        M[金融服务<br/>finance-service:8084]
        N[数据平台服务<br/>data-platform-service:8085]
        O[政务服务<br/>government-service:8086]
        P[大屏服务<br/>dashboard-service:8087]
        Q[商城服务<br/>mall-service:8088]
    end

    subgraph "辅助业务服务层(Node.js)"
        R[AI能力服务<br/>ai-service:3001]
        S[部分遗留服务<br/>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作为辅助技术能够充分发挥各自优势构建一个稳定、高效的畜牧管理系统。