使用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 中,保持顺序不乱
    }
}
相关推荐
重生之后端学习1 分钟前
994. 腐烂的橘子
java·开发语言·数据结构·后端·算法·深度优先
星火开发设计10 分钟前
关联式容器:set 与 multiset 的有序存储
java·开发语言·前端·c++·算法
追随者永远是胜利者11 分钟前
(LeetCode-Hot100)72. 编辑距离
java·算法·leetcode·职场和发展·go
musenh13 分钟前
springmvc学习
java·学习
Hello.Reader16 分钟前
Flink State Backend 选型、配置、RocksDB 调优、ForSt 与 Changelog 一次讲透
java·网络·数据库
人道领域26 分钟前
Maven多环境配置实战指南
java·数据库·spring
倚肆31 分钟前
WebSocket 完整教程:从安装到实战
java·websocket
时艰.32 分钟前
订单系统分库分表方案设计与实现
java
亓才孓33 分钟前
[SpringBoot]@SpringBootTest标签作用
java·spring boot·log4j
倚肆38 分钟前
Spring WebSocket 的 MessageBrokerRegistry 与 StompEndpointRegistry 配置参数详解
java·websocket