使用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 中,保持顺序不乱
    }
}
相关推荐
重庆兔巴哥4 分钟前
如何检查Java环境变量是否配置成功?
java·开发语言
_olone8 分钟前
牛客每日一题:刷题统计(Java)
java·算法·容斥原理·牛客
junnhwan9 分钟前
LeetCode Hot 100——栈
java·数据结构·算法·leetcode·hot 100
Gin3879 分钟前
SpringBoot实现文件上传和下载
java·spring boot·后端
蓝天星空13 分钟前
C# .net闭源与Java开源框架的对比
java·c#·.net
金牌归来发现妻女流落街头14 分钟前
【用 Java API Client 操作 Elasticsearch】
java·elasticsearch·jenkins
Seven9715 分钟前
调试排错 - 线程Dump分析
java
Z...........18 分钟前
Spring日志管理
java·后端·spring
lj8508618 分钟前
性能测试总结
java·开发语言·spring
yhdata23 分钟前
自然灾害检测物联网系统市场稳步扩容:2032年规模剑指392.7亿元,六年CAGR达33.8%
java·物联网·struts