我是Apache·Flink的新手。我想创建一个数据流,并将另一个系统的值提供给它。
我找到了如何添加“sourcefunctions”的示例,在该函数中,我必须等待来自某个源的值,并通过调用ctx.collect将这些值发布到flink,然后再次等待,这是轮询。
但我有一个数据源,它在值到达时调用函数(异步)。所以,我想做的是:当这个异步调用发生时,我想把这个值放到一个flink数据流中,伪代码:
mysystem.connect到值((value)=>{myflinkdatastream.put(value.tostring)})
这能做到吗?否则我必须在sourcefunction中执行连接和回调,然后用sleep做一个循环,但我不想这样做。。。
我已经在flink中看到了“用于外部数据访问的异步i/o”,但为此,我仍然需要一个源流,它是一个sourcefunctions(poll/loop)的feed。
1条答案
按热度按时间63lcw9qa1#
如果不想添加
SourceFunction
在流式处理作业中,我建议使用kafka或其他消息队列,您可以从异步源向其中发送数据,并将flink流式处理作业连接到消息队列。