docs: 重构API文档和系统架构文档,统一技术栈规范docs(architecture): 更新系统架构设计文档

- 重新组织文档结构,优化标题层级
- 添加系统架构图,直观展示系统组成- 补充前端架构、后端架构、数据架构等详细内容
- 更新安全架构、部署架构、性能优化策略等章节
- 增加扩展性设计和高可用设计章节
- 总结系统架构设计特点和优势
This commit is contained in:
ylweng
2025-09-11 01:04:51 +08:00
parent 68c6c23f5a
commit f1273daeac
34 changed files with 1663 additions and 1713 deletions

View File

@@ -1,157 +1,214 @@
# 后端API服务开发计划
# 后端API开发计划
## 1. 系统概述
## 1. 概述
后端API服务是整个平台的数据中枢基于Node.js和Express.js构建提供RESTful API接口负责处理所有业务逻辑、数据存储和第三方服务集成
本项目采用双技术栈架构后端服务基于Java Spring Boot和Node.js两种技术栈构建。Java技术栈作为主要后端技术采用微服务架构设计Node.js技术栈作为辅助技术用于特定业务场景
## 2. 技术架构
## 2. 技术架构
- **运行环境**: Node.js
### 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 Node.js技术栈辅助
- **运行环境**: Node.js 16.x
- **Web框架**: Express.js
- **API风格**: RESTful API
- **数据库**: MySQL
- **ORM**: Sequelize / TypeORM
- **认证机制**: JWT
- **安全防护**: Helmet, CORS, Rate Limiting
- **日志管理**: Winston
- **测试框架**: Jest
- **API文档**: Swagger
- **数据库**: MySQL 8.0
- **ORM**: Sequelize
- **构建工具**: NPM/Yarn
## 3. 功能模块详细计划
## 3. Java后端开发计划
### 3.1 用户认证和权限模块 (3天)
- 第1天
- 用户注册/登录接口实现
- JWT Token生成和验证机制
- 第2天
- 角色权限管理接口
- RBAC权限控制实现
- 第3天
- 用户信息管理接口
- 密码重置和安全机制
### 3.1 已完成模块
1. **养殖管理服务 (farming-service:8081)**
- 功能:养殖场管理、牲畜档案、饲养记录等
- 状态:已完成开发和部署
- 负责人Java开发团队
### 3.2 牛只档案管理模块 (2天)
- 第1天
- 牛只档案增删改查接口
- 耳标二维码管理接口
- 第2天
- 牛只生命周期记录接口
- 牛只档案查询和筛选接口
2. **用户中心服务 (user-center-service:8082)**
- 功能:用户管理、权限控制、认证授权等
- 状态:已完成开发和部署
- 负责人Java开发团队
### 3.3 饲养记录管理模块 (1天)
- 第1天
- 饲料库存管理接口
- 每日投喂量记录接口
- 饲料库存预警接口
### 3.2 开发中模块
1. **交易服务 (trade-service:8083)**
- 功能:活牛交易、订单管理、支付处理等
- 状态:开发中
- 进度60%
- 预计完成时间2024年2月15日
- 负责人Java开发团队
### 3.4 繁殖管理模块 (1天)
- 第1天
- 繁殖记录管理接口
- 基因谱系分析接口
- 产犊预测接口
2. **金融服务 (finance-service:8084)**
- 功能:贷款申请、保险购买、金融产品等
- 状态:开发中
- 进度40%
- 预计完成时间2024年2月28日
- 负责人Java开发团队
### 3.5 环境监测模块 (1天)
- 第1天
- 物联网设备数据接入接口
- 环境数据存储和查询接口
- 异常环境告警接口
### 3.3 待开发模块
1. **数据平台服务 (data-platform-service:8085)**
- 功能:数据统计、报表生成、数据分析等
- 状态:待开发
- 预计开始时间2024年2月10日
- 预计完成时间2024年3月15日
- 负责人Java开发团队
### 3.6 贷款管理模块 (2天)
- 第1天
- 贷款申请和审批接口
- 质押物状态监控接口
- 第2天
- 还款计划跟踪接口
- 风险评估数据接口
2. **政务服务 (government-service:8086)**
- 功能:政策发布、监管上报、审批流程等
- 状态:待开发
- 预计开始时间2024年2月20日
- 预计完成时间2024年3月30日
- 负责人Java开发团队
### 3.7 保险管理模块 (2天)
- 第1天
- 保险投保管理接口
- 保单状态跟踪接口
- 第2天
- 理赔申请和处理接口
- 风险评估和预警接口
3. **大屏服务 (dashboard-service:8087)**
- 功能:数据可视化、实时监控、大屏展示等
- 状态:待开发
- 预计开始时间2024年3月1日
- 预计完成时间2024年4月10日
- 负责人Java开发团队
### 3.8 政府监管模块 (1天)
- 第1天
- 产业数据总览接口
- 监管数据汇总接口
- 政策发布接口
4. **商城服务 (mall-service:8088)**
- 功能:商品管理、购物车、订单处理等
- 状态:待开发
- 预计开始时间2024年3月5日
- 预计完成时间2024年4月20日
- 负责人Java开发团队
### 3.9 交易管理模块 (2天)
- 第1天
- 牛只信息发布接口
- 在线交易撮合接口
- 第2天
- 合同管理接口
- 支付流程管理接口
## 4. Node.js后端开发计划
### 3.10 商城管理模块 (2天)
- 第1天
- 商品信息管理接口
- 库存管理接口
- 第2天
- 订单处理接口
- 物流跟踪接口
### 4.1 已完成模块
1. **AI能力服务 (ai-service:3001)**
- 功能图像识别、智能分析等AI相关功能
- 状态:已完成基础框架搭建
- 负责人Node.js开发团队
### 3.11 数据分析模块 (2天)
- 第1天
- 实时数据采集接口
- 大数据分析引擎接口
- 第2天
- 智能预警系统接口
- 数据可视化接口
### 4.2 开发中模块
1. **部分遗留服务 (legacy-service:3002)**
- 功能:部分原有系统功能的兼容
- 状态:重构中
- 进度30%
- 预计完成时间2024年2月20日
- 负责人Node.js开发团队
## 4. 技术实现要点
### 4.3 待开发模块
1. **其他辅助服务**
- 功能:根据业务需求开发的辅助功能
- 状态:待规划
- 预计开始时间2024年3月1日
- 预计完成时间:根据需求确定
- 负责人Node.js开发团队
- 实现基于JWT的无状态认证
- 使用RBAC角色权限管理系统
- HTTPS加密传输
- API接口安全防护限流、防注入等
- 数据库连接池管理
- 缓存机制优化性能Redis
- 异步任务处理RabbitMQ
- 文件存储服务集成(腾讯云)
## 5. 微服务架构规划
## 5. 开发阶段规划
### 5.1 核心服务端口分配
| 服务名称 | 端口号 | 技术栈 | 状态 |
|---------|--------|--------|------|
| farming-service | 8081 | Java | 已完成 |
| user-center-service | 8082 | Java | 已完成 |
| trade-service | 8083 | Java | 开发中 |
| finance-service | 8084 | Java | 开发中 |
| data-platform-service | 8085 | Java | 待开发 |
| government-service | 8086 | Java | 待开发 |
| dashboard-service | 8087 | Java | 待开发 |
| mall-service | 8088 | Java | 待开发 |
### 5.1 阶段一:基础框架搭建 (3天)
- 项目初始化和环境配置
- Express.js框架搭建
- 数据库连接配置
- JWT认证机制实现
- 基础中间件集成(日志、安全、错误处理等)
### 5.2 基础设施服务端口分配
| 服务名称 | 端口号 | 技术栈 | 状态 |
|---------|--------|--------|------|
| gateway | 8080 | Java | 待开发 |
| registry | 8761 | Java | 待开发 |
| config-server | 8888 | Java | 待开发 |
### 5.2 阶段二:核心功能开发 (15天)
- 用户认证和权限模块开发
- 养殖管理相关模块开发
- 金融服务相关模块开发
- 政府监管模块开发
- 交易管理模块开发
- 商城管理模块开发
- 数据分析模块开发
### 5.3 Node.js服务端口分配
| 服务名称 | 端口号 | 技术栈 | 状态 |
|---------|--------|--------|------|
| ai-service | 3001 | Node.js | 已完成基础框架 |
| legacy-service | 3002 | Node.js | 重构中 |
### 5.3 阶段三:系统集成与测试 (4天)
- 第三方服务集成(银行、保险、腾讯云等)
- API接口测试和优化
- 性能测试和调优
- 安全测试和漏洞修复
- API文档完善
## 6. 技术迁移策略
## 6. 质量保障措施
### 6.1 迁移原则
1. **渐进式迁移**: 逐步将Node.js服务迁移到Java微服务架构
2. **业务优先**: 优先迁移核心业务服务
3. **兼容性保证**: 确保迁移过程中不影响现有业务
4. **数据一致性**: 保证数据迁移的完整性和一致性
- 单元测试覆盖率达到80%以上
- 接口测试确保API稳定性
- 性能测试确保支持500+并发用户
- 安全测试防止SQL注入、XSS等攻击
- 代码审查机制确保代码质量
### 6.2 迁移步骤
1. **评估阶段**: 评估现有Node.js服务的复杂度和迁移难度
2. **设计阶段**: 设计Java微服务架构和接口规范
3. **开发阶段**: 开发新的Java微服务
4. **测试阶段**: 进行全面的功能测试和性能测试
5. **部署阶段**: 逐步替换现有Node.js服务
6. **监控阶段**: 监控新服务的运行状态和性能表现
## 7. 部署与运维
## 7. 开发规范
- 支持Docker容器化部署
- 支持云平台部署(腾讯云)
- 支持负载均衡部署
- 系统运行状态监控
- 性能监控指标
- 异常告警功能
- 日志收集和分析
### 7.1 代码规范
1. **Java代码规范**: 遵循阿里巴巴Java开发手册
2. **Node.js代码规范**: 遵循JavaScript Standard Style
3. **API设计规范**: 遵循RESTful API设计原则
4. **数据库设计规范**: 遵循数据库设计范式
### 7.2 文档规范
1. **API文档**: 每个接口必须提供详细的API文档
2. **设计文档**: 每个服务必须提供架构设计文档
3. **部署文档**: 每个服务必须提供部署说明文档
### 7.3 测试规范
1. **单元测试**: 每个模块必须提供单元测试
2. **集成测试**: 服务间接口必须提供集成测试
3. **性能测试**: 关键服务必须提供性能测试报告
## 8. 测试策略
### 8.1 测试类型
1. **单元测试**: 验证每个模块的功能正确性
2. **集成测试**: 验证服务间的接口调用
3. **性能测试**: 验证系统的性能表现
4. **安全测试**: 验证系统的安全性
### 8.2 测试工具
1. **Java测试**: JUnit, Mockito
2. **Node.js测试**: Jest, Mocha
3. **API测试**: Postman, JMeter
4. **性能测试**: JMeter, Gatling
## 9. 部署策略
### 9.1 部署环境
1. **开发环境**: 本地开发环境
2. **测试环境**: 内部测试环境
3. **预生产环境**: 预生产验证环境
4. **生产环境**: 正式生产环境
### 9.2 部署方式
1. **容器化部署**: 使用Docker容器化部署
2. **自动化部署**: 使用Jenkins实现CI/CD
3. **蓝绿部署**: 关键服务采用蓝绿部署策略
4. **滚动更新**: 普通服务采用滚动更新策略
## 10. 风险控制
### 10.1 技术风险
1. **技术栈切换风险**: 开发团队需要适应新的技术栈
2. **性能风险**: 微服务架构可能带来性能损耗
3. **数据一致性风险**: 分布式系统中的数据一致性问题
### 10.2 管理风险
1. **进度风险**: 多个服务并行开发可能影响整体进度
2. **沟通风险**: 不同技术团队间的沟通协调问题
3. **质量风险**: 快速开发可能影响代码质量
### 10.3 应对措施
1. **技术培训**: 组织技术培训帮助团队适应新技术
2. **性能优化**: 通过缓存、异步等手段优化性能
3. **监控告警**: 建立完善的监控告警机制
4. **代码审查**: 严格执行代码审查制度
5. **定期评审**: 定期进行项目进度评审