Spring boot io反应器中的flatmap背压

Spring boot io反应器中的flatmap背压,spring-boot,project-reactor,spring-data-cassandra,Spring Boot,Project Reactor,Spring Data Cassandra,我们正在使用springboot 2.0和反应式spring数据cassandra模块。 我们有以下代码 Flux.range(1,10000).flatMap(this::getData).subscribe(new BaseSubscriber<List<Data>>() { @Override protected void hookOnSubscribe(Subscription subscription) {

我们正在使用springboot 2.0和反应式spring数据cassandra模块。 我们有以下代码

Flux.range(1,10000).flatMap(this::getData).subscribe(new BaseSubscriber<List<Data>>() {
        @Override
        protected void hookOnSubscribe(Subscription subscription) {
            subscription.request(1);
        }

        @Override
        protected void hookOnNext(List<Data> value) {
            request(1);
        }
    });

public Mono<List<Data>> getData(int n){
    //cassandra reactive call to get List of data
}
Flux.range(110000).flatMap(this::getData).subscribe(newbasesubscriber()){
@凌驾
受保护的void hookonsubscripte(订阅){
认购请求书(1);
}
@凌驾
受保护的void hookOnNext(列表值){
请求(1);
}
});
公共数据(int n){
//cassandra被动调用以获取数据列表
}

我们面临的问题是,即使使用BaseSubscriber有背压,getData也会被调用以获得最大整数值。由于这一点,卡桑德拉的时间都不够。我认为,当我们使用flatmap和getData返回mono时,不会应用背压。我们必须使用flatmap,因为在mono error上,我们返回mono.empty,以保持对通量中其余整数请求的数据。在这种情况下,是否有人可以帮助应用背压?

有一个超负荷的
flatMap
,您可以在其中设置
并发性
参数(实际上更多的是并行系数)和
预取
参数(默认为256)。最后一个是第一次请求的内部通量量,因此您可以将其设置为
1

getData
真正请求的
整数。最大值
?您能否将
.log()
添加到
getData()
以确认?