开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

在Flink为什么使用同步客户端在线程池中调用比异步客户端效率低?

在Flink为什么使用同步客户端在线程池中调用比异步客户端效率低?f63632ad3c97ebceefd5bbf38a77823f.png

展开
收起
三分钟热度的鱼 2023-12-28 18:38:45 61 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Flink中,同步客户端和异步客户端的主要区别在于他们的请求方式。同步客户端会阻塞当前线程直到获取到结果,而异步客户端则会立即返回一个Future对象,然后在后台执行请求。

    当访问的外部存储支持异步请求时,Flink推荐使用异步I/O,因为这样可以极大地提高数据处理效率。然而,如果所访问的外部存储不支持异步请求,可以通过创建多个同步请求并放到线程池中来处理,这种方式被称为有限的并发客户端。但是,这种方法通常比适当的异步客户端效率低。这是因为同步请求会阻塞线程池中的线程,使得线程无法并发处理其他请求,从而降低了系统的整体效率。

    总的来说,同步客户端在线程池中调用比异步客户端效率低的主要原因在于,同步请求会阻塞线程,而异步请求则不会。因此,为了提高系统的效率,应尽可能使用异步I/O。

    2023-12-29 16:14:22
    赞同 展开评论 打赏
  • 受限线程的个数呀,而且就算你线程上去了 线程上下文切换也占用资源呀。此回答整理自钉群“【①群】Apache Flink China社区”

    2023-12-28 19:00:36
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载