chaixuhong fc870a3360 flink test 1 týždeň pred
..
01-flink-optimization.md fc870a3360 flink test 1 týždeň pred
02-parse-service-optimization.md fc870a3360 flink test 1 týždeň pred
03-performance-testing.md fc870a3360 flink test 1 týždeň pred
04-architecture-evolution.md fc870a3360 flink test 1 týždeň pred
05-history-server.md fc870a3360 flink test 1 týždeň pred
06-gpu-scheduling.md fc870a3360 flink test 1 týždeň pred
README.md fc870a3360 flink test 1 týždeň pred

README.md

待优化任务列表

这里记录了多模态解析系统的待优化任务,防止忘记。


文件列表

文件 内容 优先级
01-flink-optimization.md Flink 优化任务(Async I/O、Kafka Source、状态管理)
02-parse-service-optimization.md parse-service 优化(多实例、Docker 化、负载均衡)
03-performance-testing.md 性能测试方案和测试矩阵
04-architecture-evolution.md 架构演进规划
05-history-server.md HistoryServer 配置(生产环境)
06-gpu-scheduling.md GPU 异构资源调度(按类型分 Topic)

当前进度

已完成 ✅

  • RealFlinkJob 基础版本(测试用)
  • PureJavaTest(纯 Java 测试,不依赖 Flink)
  • Flink Docker Compose 部署
  • parse-service 单实例运行
  • 完整流程验证(Flink → parse-service → embedding-api → ES → 检索)

进行中 🔄

待开始 ⏳

  • Flink Async I/O 优化
  • Flink Kafka Source
  • parse-service 多实例部署
  • 性能极限测试

快速参考

访问地址

服务 地址
Flink Web UI http://localhost:8081
parse-service http://localhost:8000
schedule-embedding-api http://localhost:8084

常用命令

# 启动 Flink
docker-compose -f docker-compose-flink.yml up -d

# 停止 Flink
docker-compose -f docker-compose-flink.yml down

# 提交 Job 到 Flink
docker exec flink-jobmanager ./bin/flink run \
  -c com.yusys.flink.RealFlinkJob \
  /opt/flink/usrlib/schedule-flink-1.0-SNAPSHOT.jar

# 查看 Flink 日志
docker logs flink-jobmanager --tail 100
docker logs flink-taskmanager --tail 100

# 编译 schedule-flink
cd schedule-flink
jdk17 && mvn package -DskipTests

关键问题记录

1. Flink + parse-service 的定位

  • Flink:可靠编排(重试、状态、背压、Exactly-Once)
  • parse-service:实际解析(AI 模型、文件格式处理)- 核心业务逻辑,必须保留

2. 是否需要 HistoryServer

  • 开发环境:不需要,看日志/Web UI 够了
  • 生产环境:建议配置,用 Kubernetes + 对象存储

3. 性能测试顺序

  1. 先测 parse-service 单实例极限
  2. 再扩 parse-service 实例
  3. 最后调 Flink 参数

4. GPU 异构资源调度问题

  • 问题:图片任务占满 Flink,音频/视频任务排队,但 GPU 空闲
  • 方案:按类型分 Topic + 独立 Flink Job
  • 实现send_task_to_kafka_by_type.py(PDF 扫描检测 + 按类型分发)

相关文档