使用CompletableFuture的Flink接收器中的异步操作



背景

计划使用Flink建立一个数据管道。

流程看起来像这个

Kafka --> Flink Job --> gRPC endpoint

到目前为止的故事

  1. 阻塞实现已启动并正在运行。但这不会扩大高QPS
  2. 尝试在此处模拟异步行为

问题

  • 对于异步行为,不确定行为将如何
  • 如果使用CompletableFuture,则每条消息都将以Async的方式进行处理,但在第一条消息的处理完成之前,是否会提取下一条消息进行处理?换句话说,有一种方法可以在任务管理器中实现异步处理。但是,任务管理器在获取下一条消息/元组时的行为是什么?是等待Async进程完成,还是提交给CompletableFuture/Thread并获取下一条消息?不清楚
  • 如果不是shutdown,使用自定义线程池会导致任何问题吗?因为管道将长时间运行
  • 有其他解决方案可以在Flink接收器中实现异步行为吗

与尝试实现自定义异步接收器相比,我会利用Flink对异步运算符的支持,并拥有DiscardingSink

不,我看不出为什么有一个持久的线程池会导致问题。

相关内容

  • 没有找到相关文章

最新更新