使用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 中,保持顺序不乱
    }
}
相关推荐
sheji34163 分钟前
【开题答辩全过程】以 慧医疗网上医院管理系统为例,包含答辩的问题和答案
java
子一!!4 分钟前
JavaEE初阶第一课时==计算机与系统讨论==
java·java-ee
小二·4 分钟前
Go 语言系统编程与云原生开发实战(第37篇)
java·云原生·golang
yxc_inspire5 分钟前
大二 Java 后端学习记录:集合框架(List/Queue/Map/Set)+ 泛型 + 迭代器
java·开发语言
xuansec5 分钟前
【JavaEE安全】Java反射机制:核心原理、实战应用与安全风险管控
java·安全·java-ee
co_wait5 分钟前
【C++ STL】map容器的基本使用
java·c++·rpc
蜜獾云6 分钟前
设计模式之原型模式:以自己为原型,自己实现自己的对象拷贝逻辑
java·设计模式·原型模式
nhc0889 分钟前
贵州本地企业做软件定制开发,怎么选靠谱服务商?
java·微信小程序·软件开发·小程序开发
Predestination王瀞潞12 分钟前
Mapper接口与XML映射文件的绑定机制(Mapper接口的动态代理实现机制)
xml·java·mybatis
h7ml15 分钟前
企业微信API接口的数据一致性保障:Java Seata分布式事务在跨系统审批流程中的应用
java·分布式·企业微信