FLink Async
时间: 2023-11-21 07:54:34 浏览: 140
Flink AsyncDataStream是用于将AsyncFunction应用于DataStream的工具类。它提供了两种模式来控制结果记录的发出顺序,分别是OrderedWait和unorderedWait。在这两种模式下,AsyncDataStream会创建一个AsyncWaitOperator,它是支持异步IO访问的算子实现。AsyncWaitOperator会将进入算子的元素包装成Promise,并将Promise放入队列中。然后,AsyncFunction的asyncInvoke方法会向外部服务发起异步请求,并注册一个回调函数。当异步请求成功返回时,回调函数会调用AsyncCollector的collect方法将返回的结果交给框架处理。实际上,AsyncCollector就是Promise,在调用collect方法时,它会标记Promise为完成状态,并通知Emitter线程有完成的消息可以发送。Emitter会从队列中拉取完成的Promise,并从Promise中取出消息发送给下游。因此,消息的顺序性是由AsyncWaitOperator和Promise保证的。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Flink中的异步IO](https://blog.csdn.net/qq_43791724/article/details/115471743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文