Files
server/SOLUTION_REPORT.md
2025-11-22 14:22:36 +08:00

75 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎯 800MB Jar包优化解决方案
## 当前状态分析
**已完成优化**:
- 移除重复依赖 (jxl, metadata-extractor, commons-imaging)
- 预期减少约2-5MB
**主要问题**:
- JavaCV + FFmpeg平台库占用400-500MB
- 系统jar包占用约20MB
- 代码中直接依赖JavaCV类
## 🏆 推荐解决方案
### 方案一:微服务拆分 (最佳实践)
```yaml
# 主应用 (目标大小: 80-120MB)
point-strategy-main/
├── 档案管理核心功能
├── 文件上传下载
├── 数据库操作
└── 基础OCR功能
# 视频处理服务 (独立部署)
video-processing-service/
├── 视频转码功能
├── JavaCV + FFmpeg
└── 与主应用通过API通信
```
### 方案二:外部依赖部署 (快速方案)
```bash
# 1. 将JavaCV相关jar移至外部lib目录
cp ffmpeg-platform*.jar /app/lib/
cp javacv*.jar /app/lib/
# 2. 修改启动脚本
java -cp "point-strategy.jar:/app/lib/*" com.point.strategy.PointStrategyApplication
# 3. 主jar包预期大小: 120-150MB
```
### 方案三Docker分层优化
```dockerfile
# 使用分层Dockerfile
FROM openjdk:8-jre-alpine
COPY point-strategy.jar app.jar
COPY video-libs/ /app/lib/
CMD ["java", "-Djava.library.path=/app/lib", "-jar", "app.jar"]
```
## 🚀 立即可执行的临时方案
如果需要快速解决问题,建议使用**方案二**
1. **恢复JavaCV依赖** (编译需要)
2. **外部化部署** (启动时分离)
3. **预计主jar包**: 150-200MB (减少75%)
## 📈 优化效果预期
| 方案 | 主jar包大小 | 部署复杂度 | 推荐度 |
|------|-------------|------------|--------|
| 微服务拆分 | 80-120MB | 高 | ⭐⭐⭐⭐⭐ |
| 外部依赖 | 150-200MB | 中 | ⭐⭐⭐⭐ |
| 保持现状 | 598MB | 低 | ⭐ |
## 🎯 建议实施步骤
1. **短期**: 实施外部依赖方案快速减小jar包
2. **中期**: 逐步拆分视频处理模块
3. **长期**: 完全微服务化重构
需要我实施哪个方案?