schedule-producer → Kafka → schedule-consumer → parse-service → Kafka → schedule-embedding-api → ES
↑
计划用 Flink 替代
schedule-producer → Kafka → Flink → parse-service → schedule-embedding-api → ES
↓
Async I/O + 重试 + 状态管理
职责划分:
批量数据(对象存储) ─┐
├→ Flink → parse-service → embedding-api → ES
实时流(Kafka)───────┘
特点:
┌─────────────┐
│ Kafka │ (高可用集群)
└──────┬──────┘
│
┌──────▼──────┐
│ Flink │ (HA 集群,多 JobManager)
└──────┬──────┘
│
┌───────────┼───────────┐
│ │ │
┌───▼───┐ ┌──▼───┐ ┌──▼───┐
│parse-1│ │parse-2│ │parse-3│ (负载均衡)
└───┬───┘ └──┬───┘ └──┬───┘
│ │ │
└───────────┼───────────┘
│
┌──────▼──────┐
│embedding-api│ (多实例)
└──────┬──────┘
│
┌──────▼──────┐
│ ES │ (集群)
└─────────────┘
| 模块 | 当前职责 | Flink 引入后 | 是否保留 |
|---|---|---|---|
| schedule-producer | 发送任务到 Kafka | 保留(或扩展写对象存储) | ✅ |
| schedule-consumer | 消费 + 调用解析 | Flink 完全替代 | ❌ |
| schedule-manager | 实例管理 + 任务调度 | 简化:只管理 parse-service 实例池 | ✅ |
| schedule-monitor | Kafka 监控 | 保留 + 扩展监控 Flink | ✅ |
| schedule-embedding-api | 向量化 | 保留(Flink 调用它) | ✅ |
| parse-service | 实际解析 | 完全保留(核心业务逻辑) | ✅ |
Flink → parse-service → embedding-api → ES
优点:
缺点:
Flink → parse-service → Kafka → embedding-api → ES
优点:
缺点:
| 决策 | 选项 | 原因 |
|---|---|---|
| Flink 部署模式 | Docker Compose(开发)/ Kubernetes(生产) | 简单,云原生 |
| 状态后端 | FileSystem(开发)/ RocksDB(生产) | 平衡性能和可靠性 |
| 中间 Kafka | 可选,看业务需求 | 解耦 vs 延迟的权衡 |
docker-compose-flink.ymlschedule-flink/parse-service/schedule-embedding-api/