上传源代码版本

This commit is contained in:
Im-Jenisson
2026-06-01 16:30:29 +08:00
commit b2a9b7d3c2
462 changed files with 104365 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
# 系统架构全面分析 - 验证检查清单
- [ ] 检查点 1: 数据库索引是否已正确创建
- 验证bag_tags表是否有TagNumber、ChannelName、Status索引
- 验证bag_tag_waybills表是否有TagNumber、FinalMileTrackingNumber索引和组合索引
- [ ] 检查点 2: 数据库查询性能优化
- 验证AssociateWaybill方法执行时间是否小于1秒
- 验证数据库查询响应时间是否小于500ms
- 验证批量查询袋牌信息的响应时间是否小于3秒
- [ ] 检查点 3: 线程管理优化
- 验证Task.Run的使用是否合理
- 验证线程池使用率是否保持在70%以下
- 验证并发处理100个请求时系统是否保持稳定
- [ ] 检查点 4: 内存管理优化
- 验证系统运行24小时后内存使用是否保持稳定
- 验证处理1000个关联操作后内存增长是否小于10%
- 验证缓存策略是否合理,缓存项是否有适当的过期时间
- [ ] 检查点 5: 错误处理和系统稳定性
- 验证所有异常是否都被正确捕获和处理
- 验证系统连续运行24小时是否无崩溃
- 验证处理异常情况时系统是否保持稳定
- [ ] 检查点 6: 系统监控和预警机制
- 验证系统是否能监控关键性能指标
- 验证日志是否包含足够的信息用于问题诊断
- 验证是否有预警机制及时发现潜在问题
- [ ] 检查点 7: 系统整体性能
- 验证袋牌与运单关联操作响应时间是否小于5秒
- 验证系统是否能稳定处理正常业务负载
- 验证系统启动时间是否合理
- [ ] 检查点 8: 代码质量
- 验证代码是否符合最佳实践
- 验证是否有适当的注释和文档
- 验证是否有代码冗余或性能瓶颈

View File

@@ -0,0 +1,75 @@
# 系统架构全面分析 - 应用程序死机问题诊断报告
## 概述
- **Summary**: 对LabelReplaceServer系统进行全面架构分析诊断应用程序死机的根本原因并提供相应的解决方案。
- **Purpose**: 识别系统中的性能瓶颈、资源管理问题和潜在的崩溃风险,确保系统稳定运行。
- **Target Users**: 系统开发人员、运维人员和项目管理人员。
## Goals
- 识别导致应用程序死机的根本原因
- 分析系统架构中的性能瓶颈
- 提供具体的解决方案和优化建议
- 确保系统稳定运行,避免类似问题再次发生
## Non-Goals (Out of Scope)
- 重构整个系统架构
- 实现新功能或业务逻辑
- 解决与死机无关的其他问题
## Background & Context
- 系统是一个基于ASP.NET Core的标签替换服务主要处理袋牌管理和运单关联等功能
- 从日志分析来看,系统在处理`AssociateWaybill`请求时响应时间过长最长达到166秒
- 应用程序多次重启,可能是由于崩溃导致
## Functional Requirements
- **FR-1**: 系统应能处理袋牌与运单的关联操作响应时间不应超过5秒
- **FR-2**: 系统应能支持批量查询袋牌信息响应时间不应超过3秒
- **FR-3**: 系统应能稳定运行,避免因资源耗尽或性能问题导致崩溃
## Non-Functional Requirements
- **NFR-1**: 系统应具有良好的内存管理,避免内存泄漏
- **NFR-2**: 系统应具有合理的线程管理,避免线程池耗尽
- **NFR-3**: 系统应具有高效的数据库操作,避免长时间阻塞
- **NFR-4**: 系统应具有健壮的错误处理机制,避免未处理异常导致崩溃
## Constraints
- **Technical**: 基于ASP.NET Core、MySQL数据库、SqlSugar ORM框架
- **Business**: 系统需要处理大量的袋牌和运单数据
- **Dependencies**: 依赖外部服务如Amazon S3等
## Assumptions
- 数据库连接配置正确
- 网络环境稳定
- 服务器硬件资源充足
## Acceptance Criteria
### AC-1: 数据库查询性能优化
- **Given**: 系统处理袋牌与运单关联操作
- **When**: 执行数据库查询时
- **Then**: 查询响应时间应小于1秒
- **Verification**: `programmatic`
### AC-2: 线程管理优化
- **Given**: 系统处理并发请求
- **When**: 执行异步操作时
- **Then**: 线程池使用率应保持在合理范围内,避免耗尽
- **Verification**: `programmatic`
### AC-3: 内存管理优化
- **Given**: 系统运行过程中
- **When**: 处理大量数据时
- **Then**: 内存使用应保持稳定,避免持续增长
- **Verification**: `programmatic`
### AC-4: 系统稳定性
- **Given**: 系统连续运行24小时
- **When**: 处理正常业务负载时
- **Then**: 系统应保持稳定,无崩溃现象
- **Verification**: `programmatic`
## Open Questions
- [ ] 数据库索引是否已正确创建和使用?
- [ ] 系统是否存在内存泄漏问题?
- [ ] 线程池配置是否合理?
- [ ] 缓存策略是否最优?

View File

@@ -0,0 +1,66 @@
# 系统架构全面分析 - 实现计划
## [ ] Task 1: 数据库性能优化
- **Priority**: P0
- **Depends On**: None
- **Description**:
- 检查并确保数据库索引已正确创建
- 优化BagTagRepository中的数据库查询
- 分析并优化AssociateWaybill方法中的数据库操作
- **Acceptance Criteria Addressed**: AC-1
- **Test Requirements**:
- `programmatic` TR-1.1: AssociateWaybill方法执行时间应小于1秒
- `programmatic` TR-1.2: 数据库查询响应时间应小于500ms
- **Notes**: 重点关注bag_tag_waybills表的查询性能确保索引被正确使用
## [ ] Task 2: 线程管理优化
- **Priority**: P0
- **Depends On**: None
- **Description**:
- 优化Task.Run的使用避免过度创建线程
- 实现合理的线程池配置
- 优化异步操作的处理方式
- **Acceptance Criteria Addressed**: AC-2
- **Test Requirements**:
- `programmatic` TR-2.1: 线程池使用率应保持在70%以下
- `programmatic` TR-2.2: 并发处理100个请求时系统应保持稳定
- **Notes**: 注意Task.Run的使用场景避免在高并发情况下创建过多线程
## [ ] Task 3: 内存管理优化
- **Priority**: P1
- **Depends On**: None
- **Description**:
- 检查并修复可能的内存泄漏问题
- 优化缓存策略,避免内存过度使用
- 实现内存使用监控
- **Acceptance Criteria Addressed**: AC-3
- **Test Requirements**:
- `programmatic` TR-3.1: 系统运行24小时后内存使用应保持稳定
- `programmatic` TR-3.2: 处理1000个关联操作后内存增长应小于10%
- **Notes**: 重点关注缓存的使用,确保缓存项有合理的过期时间
## [ ] Task 4: 错误处理和系统稳定性优化
- **Priority**: P1
- **Depends On**: None
- **Description**:
- 实现更健壮的错误处理机制
- 添加系统健康检查
- 优化日志记录,便于问题诊断
- **Acceptance Criteria Addressed**: AC-4
- **Test Requirements**:
- `programmatic` TR-4.1: 系统连续运行24小时无崩溃
- `programmatic` TR-4.2: 处理异常情况时系统应保持稳定
- **Notes**: 确保所有异常都被正确捕获和处理,避免未处理异常导致系统崩溃
## [ ] Task 5: 系统监控和预警机制
- **Priority**: P2
- **Depends On**: Task 1, Task 2, Task 3, Task 4
- **Description**:
- 实现系统性能监控
- 添加预警机制,及时发现潜在问题
- 优化系统日志,便于问题分析
- **Acceptance Criteria Addressed**: AC-4
- **Test Requirements**:
- `programmatic` TR-5.1: 系统应能监控关键性能指标
- `human-judgment` TR-5.2: 日志应包含足够的信息用于问题诊断
- **Notes**: 重点监控数据库查询性能、线程池使用情况和内存使用情况