问题标签 [spring-reactive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6614 浏览

reactive-programming - map 和 doOnNext influx 有什么区别?(即项目反应堆)

在 Flux 中,还为通量中的每个项目执行映射函数。对于通量中的每个项目(发射),也会执行 doOnNext 函数。从用户的角度来看有什么区别?为什么存在两种类似的方法?可以用简单的易用性来解释。

0 投票
1 回答
1114 浏览

spring - 我们可以将 Spring Webflux 与 spring data jdbc 模板一起使用吗?会有什么影响?在这种情况下我们不能使用 R2DBC 怎么办?

我是 Spring Web Flux 的新手,不知道如何将它与现有的 Spring jdbc 模板集成,该模板使用 Oracle 的阻塞持久性驱动程序。IE。在我的情况下,R2DBC (oracle) 不受支持/不可用。我必须将 oracle-jdbc 驱动程序与 spring data jdbc 一起使用。

0 投票
1 回答
694 浏览

java - 将两个 Mono 组合在一起,其中第二个 Mono 订阅了第一个

我最近一直在使用 Java 中的反应器库和 Spring 框架来学习反应式编程,并且在大多数情况下我已经能够掌握它。但是,我发现自己有几次处于同样的境地,并希望得到一些关于我哪里出错的建议。

我苦苦挣扎的要点通常是我想用单声道做一些事情,比如找到一些补充数据,然后将其添加回原始单声道。zip 功能在我看来是理想的候选人,但我最终订阅了原始单声道两次,这不是我的意图。

这是我一直试图解决的情况类型的人为示例,因为我无法共享我的公司代码。它假设我们使用的是响应式数据库并设置了记录器,并且 Person 类是不可变的,但具有 with<FieldName> 方法。

我在运行这样的代码时看到的输出是:

这确实是有道理的,因为原始人 mono 已在两个地方订阅,我将其映射到familyMembersMono和将它们压缩在一起时,但如果可以避免的话,我不想对存储库进行不必要的调用。

有人对处理这种行为的更好方法提出建议吗?

0 投票
0 回答
589 浏览

reactor-netty - 没有分块编码的 Spring WebClient

我需要在没有默认模式的情况下使用Spring响应式,这是由底层和基于堆栈“强制执行”的。不幸的是,我需要与之通信的服务器不支持这种模式,即使它支持其余的 HTTP 1.1 规范。WebClientchunked encodingHttpClientNetty

我知道有一个Content-Length手动设置标题的选项,但这需要您使用DataBuffer类似的结构进行操作,并且我想尽可能多地使用提供的支持(BodyInserters、Multipart 支持等......)。经过一番挖掘,我发现在HttpClientConfiguration级别 forGETHEADrequests 中使用了类似的东西,这些都是预先缓冲的。我想实现与此类似的东西,但我不确定在哪个级别(如果可能的话)最好这样做。理想情况下,我想实现一些中间件,它只会缓冲传入的正文数据,直到上游完成,然后设置Content-Length为下游。我不关心内存使用情况。

0 投票
0 回答
230 浏览

spring - Spring Reactive:服务方法调用无法返回响应

试图通过在两者之间包含一个小的验证来重写一个有效的反应函数。不幸的是,即使在后端完成了计算,程序也无法完成请求。此外,如果有人能告诉我是否有任何与响应式相关的不必要的编码实践,那就太好了。

  1. 处理函数,我们从这里调用响应式服务

    /li>
  2. 处理程序调用下面的服务,下面的代码片段有问题

    /li>
  3. 服务代码的工作版本。

无法弄清楚为什么请求处理没有结束,请告知。

0 投票
1 回答
89 浏览

spring - Spring Reactor - 使用 Pageable 端点

这是我第一次使用 Spring Reactor,我面临以下挑战:

我有一项服务,它允许使用由页码和页面大小指定的许多记录:

GetContactsForGroupResponse 在其他字段中包含分页元数据:

现在我需要编写另一种方法来读取所有页面

并将结果合并到一个集合中:

到目前为止,我已经写过:

我逐页阅读结果,直到读到最后一页。我想知道从 SpringReactor 的角度来看,正确的实现方式是什么

任何意见,将不胜感激,

谢谢

0 投票
1 回答
615 浏览

rx-java - 如何在 Spring Flux 中停止昂贵的计算

我使用 Spring 反应式作为服务器来进行昂贵的生成并在 Flux 中一一返回结果。如果请求被取消(例如约束和太紧),这具有停止生成的优点。我的代码如下所示:

这只完成了我想要的一半,取消时我不会拨打下一个电话expensiveGeneration,但不会停止当前运行昂贵的生成,如果约束太紧,可能永远不会完成。请问我该怎么做。

额外的问题,如果你知道,我怎样才能在并行中生成 x 个实体以最大限度地利用我的线程(当然不是一次启动所有代)。

提前致谢。

0 投票
1 回答
313 浏览

spring-boot - 从一个微服务到另一个微服务的 WebClient 构建器调用在 Webflux 中首次出现错误的请求错误

我们正在使用 WebClient Builder 调用在我们的项目中进行微服务之间的通信。它是基于 springboot-thymleaf-webflux 的应用程序。到目前为止一切都运行良好,但我们得到了客户端的要求,将 GET 调用更改为 thymleaf 控制器中的 POST 调用。在 UI 和后端进行这些更改后,Thymleaf 调用工作正常,但其中一个 XHR 即来自 UI 的后调用 - 给 Webclient 调用第二个微服务以进行第一次单击并为第二次单击工作的错误请求错误。我比较了标题和两次点击的请求都没有发现任何区别。我无法理解为什么 webclient 第一次表现异常而第二次工作正常。下面是 webclient 调用的代码片段,它正在路由到 WebclientResponseException 而不会通过说 BAD Request forhttp://second-microservice- eureka-address/endpoint-url

0 投票
0 回答
385 浏览

spring - 使用带有 StepVerifier 的 webTestClient 的 Spring REST 文档(反应式端点)

我正在尝试使用 webTestClient 为我的控制器创建单元测试。我需要使用 Spring rest docs 生成 api 文档。我曾经使用 StepVerifier(返回 Mono of Flux 的端点)创建我的资产

无论如何使用 StepVerifier 并使用 Spring rest docs 创建自动文档。

此代码工作正常:

使用 stepverifier 定义测试的方法是什么?

0 投票
3 回答
4780 浏览

java - 在 Spring WebFlux 中进行异步 SOAP 调用

我有一个使用带有 REST API 的 WebFlux 的反应式 Spring 应用程序。每当用户调用我的 API 时,我都需要调用公开 WSDL 的 SOAP 服务,执行一些操作并返回结果。

如何将此调用与响应式 WebFlux 框架结合到 SOAP 服务?

在我看来,我可以通过 2 种不同的方式做到这一点:

  1. 使用 WebFlux 的 WebClient 构造和发送 SOAP 消息。
  2. 在 Mono / Flux 中使用 WebServiceGatewaySupport 包装同步调用。

第一种方法有我的偏好,但我不知道该怎么做。

此处已提出类似问题: Reactive Spring WebClient - Making a SOAP call,参考这篇博文 ( https://blog.godatadriven.com/jaxws-reactive-client )。但我无法让这个例子起作用。

在 Gradle 插件中使用wsdl2java我可以使用异步方法创建客户端接口,但我不明白如何使用它。使用时,WebServiceGatewaySupport我根本不使用生成的接口或其方法。相反,我调用通用marshalSendAndReceive方法

谁能分享一个从 WebFlux 控制器到进行 SOAP 调用并异步返回的完整示例?我觉得我错过了一些至关重要的东西。