在Flink为什么使用同步客户端在线程池中调用比异步客户端效率低?
以下为热心网友提供的参考意见
在Flink中,同步客户端和异步客户端的主要区别在于他们的请求方式。同步客户端会阻塞当前线程直到获取到结果,而异步客户端则会立即返回一个Future对象,然后在后台执行请求。
当访问的外部存储支持异步请求时,Flink推荐使用异步I/O,因为这样可以极大地提高数据处理效率。然而,如果所访问的外部存储不支持异步请求,可以通过创建多个同步请求并放到线程池中来处理,这种方式被称为有限的并发客户端。但是,这种方法通常比适当的异步客户端效率低。这是因为同步请求会阻塞线程池中的线程,使得线程无法并发处理其他请求,从而降低了系统的整体效率。
总的来说,同步客户端在线程池中调用比异步客户端效率低的主要原因在于,同步请求会阻塞线程,而异步请求则不会。因此,为了提高系统的效率,应尽可能使用异步I/O。
以下为热心网友提供的参考意见
受限线程的个数呀,而且就算你线程上去了 线程上下文切换也占用资源呀。此回答整理自钉群“【①群】Apache Flink China社区”