apacheflink:使用来自外部/阻塞调用的数据充实流


0

在我的应用程序中,我想丰富无限的事件流。流本身通过一个Id的散列来并行化。对于每个事件,都可能有一个对外部源(例如REST、DB)的调用。这通电话被自然阻塞了。必须保持一个流分区内事件的顺序。

我的想法是创建一个RichMapFunction,它建立 join,然后轮询每个事件的外部源。阻塞呼叫通常不会花费太长时间,但在最坏的情况下,服务可能会关闭。

理论上,这是可行的,但我觉得这样做不好,因为我不知道如果流中有一些阻塞操作,Flink会有什么反应。如果有很多并行流阻塞,即线程用完了,会发生什么?或者行为流如何在流被平行化的地方向上流动?

其他人是否也有类似的问题,并对我的问题给出了答案,或者有一些如何解决的想法?

1 答案


0

RichMapFunction是一个很好的起点,但更喜欢RichAsyncFunction,它是异步的,不会阻止您的处理!

小心:

更多详情:https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/stream/asyncio.html

希望有帮助


我来回答

写文章

提问题

面试题