【发布时间】:2020-03-05 12:37:00
【问题描述】:
我是 Reactive/Webflux 的新手,正在尝试了解 Webflux 中的背压。我有以下控制器。我们的应用程序接收 JSON 搜索请求,并以通量流作为响应。
@PostMapping(path = "/search",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
public Flux<ResponseContainer> getItineraries(@RequestBody SearchRequest searchRequest){
return searchService
.convertToFlux(searchRequest)
.map(<do some transformations>)
.map(<WebClientRequestsDownstream>)
.map(<aggregrate>);
}
是对流的一个实例还是对所有实例应用背压?即,如果我有一个请求通过 webflux 控制器进入的流,那么先前请求的速度会减慢吗?还是仅仅因为基于当前活动请求的减速而导致活动通量流减速而应用背压?
【问题讨论】:
-
你问之前有没有看官方文档? projectreactor.io/docs/core/release/reference/…
-
@ThomasAndolf 是的,我做到了,这还不清楚。
-
@ThomasAndolf-感谢您的链接,我的问题有点具体,是对流的一个实例还是对所有实例应用背压......我从概念上理解什么是背压
-
你的问题比较奇怪,如果你理解了这个概念,你就明白链中的每一步都会请求下一个项目,并且每个人都受到同一个链的影响。
标签: spring-webflux project-reactor reactor-netty