问题标签 [project-reactor]

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 投票
1 回答
426 浏览

java - 使用反应器提供静态内容

我想让我的反应器服务公开一些带有状态信息的静态 html。projectreactor.io 为此使用了 reactor-netty,它非常适合服务单个独立文件:

但是,一旦 html 引用另一个文件,对引用文件的请求就会在浏览器中保持等待状态并且永远不会完成。例如具有以下内容的 index.html:

此处浏览器显示 index.html 的状态 200 和 small.jpg 的状态“待定”

直接请求只有 small.jpg 没有问题。

我究竟做错了什么?

0 投票
1 回答
687 浏览

spring - 用于不同 JVM 的 Spring -Reactor 异步事件驱动编程

我很清楚使用使用 EventBus 的项目反应器的 Spring 事件驱动编程。

如果我将所有组件(消费者和生产者)都驻留在同一个 JVM 中,那么它们可以交换事件并且该模型可以正常工作。

如果组件位于不同的 JVM 中,我可以使用这种 Spring 事件驱动方法在组件之间进行通信吗?

0 投票
2 回答
9395 浏览

spring - 让 HTTP 端点返回 Flux/Mono 实例而不是 DTO 的好处

我看过Spring Tips: Functional Reactive Endpoints with Spring Framework 5.0并阅读了一些关于 spring reactor 的内容,但我不太明白。

鉴于我已经激活了 netty 和 spring reactor ,让端点返回Flux/实例(杰克逊化)而不是直接 dto 对象(杰克逊化)有什么好处?Mono我最初假设反应流在 http 请求/响应上下文中的工作方式更像 websockets,其中服务器使用开放通道将数据推送到接收器,但情况似乎并非如此。

另外,netty 在反应式编程中实际上比 tomcat 做得更好吗?

如果这些问题看起来很愚蠢,我很抱歉,但我不太明白这个新框架方向的目的。为什么会出现,它是如何工作的,它解决了什么问题?

0 投票
2 回答
778 浏览

java - 项目反应堆文档

在哪里可以找到 Reactor Core 的文档(不是 API javadoc),类似于Reactor Kafka Docs的文档,可以阅读。它存在吗?Reactor 的文档结构如何,其专用页面似乎不包含除 Reactor Kafka 之外的所有模块的参考文档,仅包含 API。这是设计使然吗?

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
1683 浏览

java - 使用 StepVerifier 测试 Mono.delay

我正在尝试Mono.delay使用StepVerifier. 我的代码如下:

我得到以下堆栈跟踪

跟踪源代码后,似乎执行器在方法上被关闭Schedulers.setFactory

我想知道我是否在这里遗漏了什么。

0 投票
0 回答
112 浏览

spring - 在 Spring Reactor (reactor.core.Reactor) 中遇到 Thread Stuck 和 ArrayIndexOutOfBoundsException 问题

我们有一个长时间运行的进程(用 JAVA 编写),它需要花费大量时间来完成整个执行。因此,我们决定通过将进程从单线程转换为多线程来提高性能。

所以我们决定使用 Spring Reactor 并通过实现 Spring Reactor (1.1.3.RELEASE) 将整个过程转换为多线程。

实施后,提高了性能并实现了我们最初寻找的目标。

但是经过 1 周的测试,我们发现了两个主要问题。

1)线程卡住问题 我们总共创建了 3 个池大小为 5 的反应器,这意味着 3 个反应器并行执行,每个反应器的线程大小为 5。

2) java.lang.ArrayIndexOutOfBoundsException

java.lang.ArrayIndexOutOfBoundsException: 0 在 com.gs.collections.impl.set.mutable.UnifiedSet.copyToArray(UnifiedSet.java:1992) 在 com.gs.collections.impl.set.mutable.UnifiedSet.toArray(UnifiedSet.java :1972) 在 com.gs.collections.impl.utility.Iterate.toArray(Iterate.java:2558) 在 com.gs.collections.impl.list.mutable.FastList.newList(FastList.java:188) 在 com。 gs.collections.impl.set.mutable.UnifiedSet.toList(UnifiedSet.java:1330) 在 com.gs.collections.impl.collection.mutable.AbstractUnmodifiableMutableCollection.toList(AbstractUnmodifiableMutableCollection.java:590) 在reactor.event.registry.CachingRegistry.select(CachingRegistry.java:131) 在 reactor.event.dispatch.Abs​​tractLifecycleDispatcher.route(AbstractLifecycleDispatcher.java:67) 在 reactor.event.dispatch.Abs​​tractMultiThreadDispatcher$MultiThreadTask.run(AbstractMultiThreadDispatcher.java: 89) 在 reactor.event.dispatch.WorkQueueDispatcher$3.onEvent(WorkQueueDispatcher.java:89) 在 reactor.event.dispatch.WorkQueueDispatcher$3.onEvent(WorkQueueDispatcher.java:86) 在 com.lmax.disruptor.WorkProcessor.run(WorkProcessor .java:138) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(线程.java:745)

这个问题并不经常出现,但我们每周会遇到 1 到 2 次。即使我们有不错的服务器配置,我也找不到解决这个问题的方向。

谁能帮我解决这个问题。请分享你的想法。

0 投票
2 回答
9264 浏览

spring - Spring 5 Web Reactive - How can we use WebClient to retrieve streamed data in a Flux?

The current milestone (M4) documentation shows and example about how to retrieve a Mono using WebClient:

How can we get streamed data (from a service that returns text/event-stream) into a Flux using WebClient? Does it support automatic Jackson conversion?.

This is how I did it in a previous milestone, but the API has changed and can't find how to do it anymore:

0 投票
1 回答
586 浏览

project-reactor - 测试 Mono.sequenceEqual

我试图弄清楚如何sequenceEqualMono. 我的代码如下:

这是我得到的堆栈跟踪

0 投票
2 回答
12635 浏览

java - Project Reactor 超时处理

我有三个与 Project Reactor 有关的问题,我将在下面问他们。从我拥有的代码开始(它将被简化以更容易理解问题)。

并测试:

所以和问题:

  1. 如何中断调用fun1并立即返回错误?(也许我做错了什么,但看起来错误不是在超时后而是在调用回调之后返回)
  2. 为什么doOnSuccess和同时doOnCancel调用?(我预计会调用(1)或(2),但不会同时调用两者)
  3. 以及如何处理以下情况:
    • 想象在代码Mono.just("hello")中正在获取连接;
    • callback我正在做一些与连接有关的事情并获得一些结果(Mono<Integer>在我的情况下);
    • 最后(成功或失败)我想释放会话(我尝试在(1)中这样做)。
0 投票
1 回答
78 浏览

java - 带有 3 个参数的 Mono.whenDelayError 仅采用最后 2 个参数

该问题可以通过以下测试重现

问题在于 Mono.java 第 864 行,它只需要 p2 和 p3。

我正在使用版本 3.0.4.RELEASE

我提出了问题拉取请求