【发布时间】:2021-11-16 11:44:49
【问题描述】:
所以我从文档中了解到的是,并行通量本质上是将通量元素划分为单独的轨道。(基本上类似于分组)。就线程而言,这将是调度程序的工作。所以让我们考虑这样的情况。所有这些都将在通过 runOn() 方法提供的同一个调度程序实例上运行。 让我们考虑如下情况:
Mono<Response> = webClientCallAPi(..) //function returning Mono from webclient call
现在假设我们打了大约 100 个电话
Flux.range(0,100).subscribeOn(Schedulers.boundedElastic()).flatMap(i -> webClientCallApi(i)).collecttoList() // or subscribe somehow
如果我们使用 paralleFlux:
Flux.range(0,100).parallel().runOn(Schedulers.boundedElastic()).flatMap(i -> webClientCallApi(i)).sequential().collecttoList();
所以如果我的理解是正确的,它似乎很相似。那么 ParallelFlux 相对于 Flux 的优势是什么?什么时候应该使用 parallelFlux 而不是 Flux?
【问题讨论】:
标签: java spring-boot spring-webflux project-reactor