我是Apache Flink的新手。我想创建一个DataStream,并将来自另一个系统的值提供给它。
我找到了如何添加"SourceFunctions“的例子,在这个函数中,我必须等待来自源的值,并通过调用ctx.collect将这些值发布到Flink,然后再次等待,这就是轮询。
但是我有一个数据源,它在值到达时调用函数(异步)。所以,我想要做的是:当这个异步调用发生时,我想把值放到一个闪烁DataStream,伪代码:
mysystem.connect_to_values( (值) => { myflinkdatastream.put(value.toString) })
这可以做到吗?否则,我必须在SourceFunction中执行连接和回调,然后使用睡眠执行一个循环,但我不想这样做……
我已经在Flink中看到了“用于外部数据访问的异步I/O”,但是我仍然需要一个源流,它由一个SourceFunctions (轮询/循环)馈送。
发布于 2017-11-29 13:34:47
如果您不想在您的流式作业中添加SourceFunction,我建议使用Kafka或其他消息队列,您可以将数据从异步源发送到这些消息队列,并将Flink流式作业连接到消息队列。
https://stackoverflow.com/questions/47532393
复制相似问题