Apache flink 什么是';容量';谈论Flink异步IO时的参数?
使用Flink AsyncDataStream#unorderedWait时,有一个名为“capacity”的参数,引用自Flink official doc 容量:此参数定义同时进行的异步请求的数量。尽管异步I/O方法通常会带来更好的吞吐量,但操作员仍然可能是流应用程序中的瓶颈。限制并发请求的数量可以确保操作员不会积累不断增长的未决请求积压,但一旦容量耗尽,就会触发背压 我不太明白,是为了整个工作,还是为了一个子任务 假设我的toy flink应用程序使用了一个卡夫卡,对于每个卡夫卡消息,它都会发出一个http请求,当它收到http响应时,它会将其放入另一个卡夫卡主题 在这个例子中,kafka源代码的并行度为50,如果我将“容量”设置为10,这意味着什么?这是否意味着整个应用程序将同时发出最多10个http请求?或者,每个子任务有10个http请求(这导致在同一时间最多有500个http请求) 另一个问题是,在这种情况下设置“容量”的最佳实践是什么Apache flink 什么是';容量';谈论Flink异步IO时的参数?,apache-flink,Apache Flink,使用Flink AsyncDataStream#unorderedWait时,有一个名为“capacity”的参数,引用自Flink official doc 容量:此参数定义同时进行的异步请求的数量。尽管异步I/O方法通常会带来更好的吞吐量,但操作员仍然可能是流应用程序中的瓶颈。限制并发请求的数量可以确保操作员不会积累不断增长的未决请求积压,但一旦容量耗尽,就会触发背压 我不太明白,是为了整个工作,还是为了一个子任务 假设我的toy flink应用程序使用了一个卡夫卡,对于每个卡夫卡消息,它都
非常感谢 容量是异步i/o运算符的每个实例的容量。因此,在您的示例中,最多会有500个并发http请求 您可能需要做一些基准测试实验,看看平衡用例的权衡在哪里是有意义的。如果容量太小,那么在负载下,您可能会过早地产生背压;如果容量太大,那么在负载下,您很可能会占用外部服务,导致超时或其他错误