使用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 中,保持顺序不乱
    }
}
相关推荐
heimeiyingwang5 分钟前
【架构实战】数据脱敏与隐私保护:合规是底线
java·开发语言·架构
dengyuezhe806019 分钟前
《C++ 异常机制与智能指针:从原理到实现》
android·java·c++
于指尖飞舞19 分钟前
java后端面试题(常用集合极简)
java·开发语言·面试
我星期八休息30 分钟前
Linux系统编程—mmap文件映射
java·linux·运维·服务器·数据库·mysql·spring
phltxy36 分钟前
Spring AI 智能咨询系统综合实战
java·人工智能·spring
java1234_小锋40 分钟前
Spring Boot 中 Starter 是什么?它的核心规范有哪些?请说明如何自定义一个 Starter。
java·spring boot·后端
良枫40 分钟前
自进化 agent:核心模块一任务规划器 Planner
java·服务器·windows
AI人工智能+电脑小能手43 分钟前
【大白话说Java面试题 第114题】【并发篇】第14题:说一下悲观锁的优点和缺点?
java·开发语言·面试
让我上个超影吧1 小时前
Claude Code 源码看 Agent 系统设计
java·ai·ai编程
plainGeekDev1 小时前
网络状态监听 → ConnectivityManager + Flow
android·java·kotlin