使用WebClient结合Flux实现并行调用多个互不相关的http请求,并使结果按照调用顺序返回

使用WebClient结合Flux实现并行调用多个互不相关的http请求,并使结果按照调用顺序返回

java 复制代码
import org.springframework.stereotype.Service;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
import reactor.core.publisher.Flux;

import java.util.List;

@Service
public class WebClientService {

    private final WebClient webClient;

    public WebClientService(WebClient.Builder webClientBuilder) {
        this.webClient = webClientBuilder.baseUrl("http://example.com").build();
    }

    public Mono<List<String>> makeDynamicRequests(List<String> endpoints) {
        // 发起 HTTP 请求并收集结果到 List
        return Flux.fromIterable(endpoints)
                .flatMap(endpoint -> webClient.get().uri(endpoint).retrieve().bodyToMono(String.class))
                .collectList(); // 收集结果到 List 中,保持顺序不乱
    }
}
相关推荐
deviant-ART2 分钟前
为什么 Java 编译器要求 catch 块显式 return 或 throw
java·开发语言
LJianK12 分钟前
《Java 数据分组的四种姿势:从 for 循环到 Stream API》
java·linux·服务器
知兀4 分钟前
【IDEA/基本设置】主题、字体、导包;Code Style配置(google的Java Code Stytle);git提交优化import
java·ide·intellij-idea
A_nanda4 分钟前
C#类型转换最佳实践
java·jvm·c#
华科易迅6 分钟前
Spring AOP(XML后置+异常通知)
xml·java·spring
jgbazsh6 分钟前
Spring中把一个bean对象交给Spring容器管理的三种方式
java·后端·spring
Network porter9 分钟前
IDEA2025(2025.2)都更新了什么???
java·intellij-idea·idea
twc82911 分钟前
不可言说的知识:AI时代软件工程的核心传递问题
java·人工智能·大模型·软件工程·知识工程
华仔啊18 分钟前
前端不懂 Java?后端怕 CSS?这套AI全栈方案专治各种偏科
java·前端·后端
今天和Aboo结婚了吗2 小时前
【Broker一重启消息没了:一次RabbitMQ非持久化+没开Confirm的血亏事故】
java·rabbitmq·messagequeue·bug排查