Flink - 用于一系列 API 调用的异步 IO 运算符

Flink - Async IO operator for series of API calls

我们正在使用异步 IO 运算符来调用外部 API。到目前为止,我们每个事件只有一次 api 调用。但是,我们有一个要求,我们必须为每个事件引入多个 API 调用。在运算符中使用线程并进行系列调用确实提供了解决方案,但这是否会破坏使用异步 IO 的目的?使用线程会导致任何其他问题吗?

您现在确实在按预期使用 asyncIOasyncIO 不会在其自身上产生任何线程,但希望用户代码直接或间接这样做。

有两个主要用例: 1) 使用外部回调,其中受雇库 returns 结果。例如,使用反应式 API of mongodb。 2)维护一个自定义的线程池(比如用Executors.newFixedThreadPool),用它来手动实现异步操作。

您正在使用第二种方法。

不使用它们中的任何一个,asyncIO 只是一个缓慢的 map