# parse-service 优化任务 ## 当前状态 - ✅ 单实例运行(`python main.py`) - ✅ Uvicorn workers=1 - ❌ 多实例部署 - ❌ 负载均衡 - ❌ Docker 化 --- ## 当前运行信息 | 项 | 值 | |---|---| | 进程 PID | 96162 | | 启动命令 | `python main.py` | | 工作目录 | `/Users/chaizi/Work/Projects/yusys/ai-study/code/four-level-schedule/parse-service` | | Web 框架 | FastAPI + Uvicorn | | 监听地址 | `0.0.0.0:8000` | | Worker 数 | 1 | --- ## 待优化项 ### 1. 单机多进程(Uvicorn workers) **优先级:高** **修改位置**:`parse-service/main.py:346` ```python # 当前 uvicorn.run( "main:app", host="0.0.0.0", port=8000, workers=1 # ← 改这里 ) # 优化后 uvicorn.run( "main:app", host="0.0.0.0", port=8000, workers=4 # ← 改成 4 或更多(根据 CPU 核数) ) ``` **注意**: - workers 数建议 ≤ CPU 核数 - 多进程共享同一个端口 - 适合单机提升性能 --- ### 2. Docker 化 parse-service **优先级:高** **需要创建**: - `parse-service/Dockerfile` - `parse-service/requirements.txt` **Dockerfile 示例**: ```dockerfile FROM python:3.10-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 8000 CMD ["python", "main.py"] ``` --- ### 3. Docker Compose 多实例 + Nginx 负载均衡 **优先级:中** **方案架构**: ``` Flink → Nginx (8000) → parse-service-1 (8001) → parse-service-2 (8002) → parse-service-3 (8003) ``` **需要创建/修改**: - `docker-compose-parse-service.yml` - `parse-service/nginx.conf` (Nginx 配置) **docker-compose 示例**: ```yaml services: parse-service-1: build: ./parse-service ports: - "8001:8000" volumes: - ./duomotai/examples:/data/examples parse-service-2: build: ./parse-service ports: - "8002:8000" volumes: - ./duomotai/examples:/data/examples nginx: image: nginx:alpine ports: - "8000:80" volumes: - ./parse-service/nginx.conf:/etc/nginx/nginx.conf depends_on: - parse-service-1 - parse-service-2 ``` **nginx.conf 示例**: ```nginx upstream parse_service { server parse-service-1:8000; server parse-service-2:8000; } server { listen 80; location / { proxy_pass http://parse_service; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` --- ### 4. 健康检查和监控 **优先级:低** - 已有 `/health` 端点 - 可以增加指标端点(Prometheus) - 集成到 schedule-manager --- ## 性能测试矩阵 | Flink 并发 | parse-service 实例数 | 预期结果 | |-----------|-------------------|---------| | 1 | 1 | 基准性能 | | 2 | 1 | 性能不提升(parse-service 瓶颈) | | 2 | 2 | 性能≈2x | | 4 | 2 | 性能≈2x(parse-service 瓶颈) | | 4 | 4 | 性能≈4x | --- ## 相关文件 - `parse-service/main.py`(修改 workers) - `parse-service/requirements.txt`(需要确认) - `schedule-manager/`(实例管理)