Files
xlxumu/docs/architecture/整个项目的架构文档.md

11 KiB
Raw Permalink Blame History

整个项目的架构文档

版本历史

版本 日期 作者 变更说明
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模式
  • 国际化:支持多语言和多地区
  • 生态集成:与第三方系统深度集成