Flink异步IO

本文讲解 Flink 用于访问外部数据存储的异步 I/O API。对于不熟悉异步或者事件驱动编程的用户,建议先储备一些关于 Future 和事件驱动编程的知识。

本文代码gitee地址:

https://gitee.com/ddxygq/BigDataTechnical/blob/main/Flink/src/main/java/operator/AsyncIODemo.java

对于异步 I/O 操作的需求

在与外部系统交互(用数据库中的数据扩充流数据)的时候,需要考虑与外部系统的通信延迟对整个流处理应用的影响。

简单地访问外部数据库的数据,比如使用 MapFunction,通常意味着同步交互:MapFunction 向数据库发送一个请求然后一直等待,直到收到响应。在许多情况下,等待占据了函数运行的大部分时间。

与数据库异步交互是指一个并行函数实例可以并发地处理多个请求和接收多个响应。这样,函数在等待的时间可以发送其他请求和接收其他响应。至少等待的时间可以被多个请求摊分。大多数情况下,异步交互可以大幅度提高流处理的吞吐量。

fed9f1f85b3c4dadf1dbba0acfac3c50.jpeg
asyncIO

注意:仅仅提高 MapFunction 的并行度(parallelism)在有些情况下也可以提升吞吐量,但是这样做通常会导致非常高的资源消耗ÿ

相关推荐

  1. Flink异步io关联Hbase

    2024-01-12 17:40:02       20 阅读
  2. 异常处理与IO

    2024-01-12 17:40:02       7 阅读
  3. flink番外篇】14、Flink异步I/O访问外部数据示例

    2024-01-12 17:40:02       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-12 17:40:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-12 17:40:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-12 17:40:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-12 17:40:02       18 阅读

热门阅读

  1. 算法训练营Day38

    2024-01-12 17:40:02       43 阅读
  2. ECMAScript 6之Map

    2024-01-12 17:40:02       27 阅读
  3. 移动端测试体系建设

    2024-01-12 17:40:02       41 阅读
  4. 面试官:实际工作中哪里用到了自定义注解?

    2024-01-12 17:40:02       39 阅读
  5. golang --gin+websocket实现指定的数据点推送

    2024-01-12 17:40:02       35 阅读
  6. yolov8模型转换

    2024-01-12 17:40:02       29 阅读
  7. GNSS数据及产品下载地址(FTP/HTTP)

    2024-01-12 17:40:02       30 阅读