优先级:高
原因:
实现要点:
// 替换 .map() 为 AsyncDataStream
AsyncDataStream.unorderedWait(
taskStream,
new ParseAsyncFunction(parseServiceUrl),
60, TimeUnit.SECONDS, // 超时时间
100 // 最大并发请求数
)
参考文件:
RealFlinkJob.javaParseAsyncFunction.java优先级:高
原因:
env.fromElements(...) 硬编码实现要点:
KafkaSource<ParseTask> source = KafkaSource.<ParseTask>builder()
.setBootstrapServers("kafka:9092")
.setTopics("parse-task-topic")
.setGroupId("flink-parse-group")
.setValueOnlyDeserializer(new ParseTaskDeserializer())
.build();
env.fromSource(source, WatermarkStrategy.noWatermarks(), "Kafka Source")
参考文件:
schedule-producer 看消息格式schedule-consumer 看消费逻辑优先级:中
内容:
优先级:低
原因:
Kafka Source
↓
KeyBy(文件类型)
↓
Async I/O (调用 parse-service 池)
↓
Map (调用 embedding-api)
↓
Sink (ES / Kafka / 数据库)
schedule-flink/src/main/java/com/yusys/flink/RealFlinkJob.javaschedule-flink/src/main/java/com/yusys/flink/PureJavaTest.java