# 整个项目的架构文档 ## 版本历史 | 版本 | 日期 | 作者 | 变更说明 | |------|------|------|----------| | 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模式 - **国际化**:支持多语言和多地区 - **生态集成**:与第三方系统深度集成