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

lmyy7pcs  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(338)

在我的应用程序中,我想丰富无限的事件流。流本身通过散列id进行并行化。对于每个事件,可能会调用外部源(例如rest、db)。这个电话是天生的阻塞。必须保持一个流分区内事件的顺序。
我的想法是创建一个richmapfunction,它设置连接,然后为每个事件轮询外部源。阻塞呼叫通常不会花费太长时间,但在最坏的情况下,服务可能会中断。
理论上,这是可行的,但我不觉得这样做很好,因为我不知道如果流中有一些阻塞操作,flink会有什么React。如果有大量并行流阻塞,会发生什么情况,即线程用完了吗?或者行为流是如何在平行点向上的?
是否有其他人可能有类似的问题和我的问题的答案或一些想法如何解决它?

eit6fx6z

eit6fx6z1#

RichMapFunction 是一个很好的出发点,但更喜欢 RichAsyncFunction 它是异步的,不会阻止您的处理!
小心:
1-您的数据库访问也可以是异步的
2-您的活动顺序可能会更改(根据使用的模式)
更多详细信息:https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/stream/asyncio.html
希望有帮助

相关问题