Spring Flux:如果我需要使用 Flux 和 Spring 5 进行并行 Web 服务调用,实现模式会是啥样子

Posted

技术标签:

【中文标题】Spring Flux:如果我需要使用 Flux 和 Spring 5 进行并行 Web 服务调用,实现模式会是啥样子【英文标题】:Spring Flux: How does the implemenatation pattern look like if i need to make parallel web service calls using Flux and Spring 5Spring Flux:如果我需要使用 Flux 和 Spring 5 进行并行 Web 服务调用,实现模式会是什么样子 【发布时间】:2017-11-08 22:23:06 【问题描述】:

如果我需要使用 Flux 和 Spring 5 进行并行 Web 服务调用,实现模式是什么样的。基本上,我的目标是并行进行多个 Web 服务调用,并将内容流式传输回浏览器服务执行完成。

【问题讨论】:

【参考方案1】:

如果从这些网络服务返回的结果顺序不相关,您可以使用Flux.merge

根据文档

将数组/可变参数中包含的 Publisher 序列中的数据合并到交错的合并序列中。

https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html#merge-java.lang.Iterable-

如果需要值的顺序与发布者的顺序相同,可以使用Flux.mergeSequential

https://projectreactor.io/docs/core/release/api/reactor/core/publisher/Flux.html#merge-java.lang.Iterable-

【讨论】:

以上是关于Spring Flux:如果我需要使用 Flux 和 Spring 5 进行并行 Web 服务调用,实现模式会是啥样子的主要内容,如果未能解决你的问题,请参考以下文章

Spring Webflux(Mono/Flux) 与 AOP 在拦截时触发 REST 调用并使用 Mono/Flux

Spring WebFlux(Flux):如何动态发布

使用链接响应标头的分页调用中的 Spring Flux

如何在 spring web-flux 中发送电子邮件响应式

我可以使用从 Spring5 的 WebClient 返回的 Flux 的 block() 方法吗?

从另一个 API 端点动态触发现有 Flux - Spring Webflux