问题标签 [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.
java - 使用反应器提供静态内容
我想让我的反应器服务公开一些带有状态信息的静态 html。projectreactor.io 为此使用了 reactor-netty,它非常适合服务单个独立文件:
但是,一旦 html 引用另一个文件,对引用文件的请求就会在浏览器中保持等待状态并且永远不会完成。例如具有以下内容的 index.html:
此处浏览器显示 index.html 的状态 200 和 small.jpg 的状态“待定”
直接请求只有 small.jpg 没有问题。
我究竟做错了什么?
spring - 用于不同 JVM 的 Spring -Reactor 异步事件驱动编程
我很清楚使用使用 EventBus 的项目反应器的 Spring 事件驱动编程。
如果我将所有组件(消费者和生产者)都驻留在同一个 JVM 中,那么它们可以交换事件并且该模型可以正常工作。
如果组件位于不同的 JVM 中,我可以使用这种 Spring 事件驱动方法在组件之间进行通信吗?
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 做得更好吗?
如果这些问题看起来很愚蠢,我很抱歉,但我不太明白这个新框架方向的目的。为什么会出现,它是如何工作的,它解决了什么问题?
java - 项目反应堆文档
在哪里可以找到 Reactor Core 的文档(不是 API javadoc),类似于Reactor Kafka Docs的文档,可以阅读。它存在吗?Reactor 的文档结构如何,其专用页面似乎不包含除 Reactor Kafka 之外的所有模块的参考文档,仅包含 API。这是设计使然吗?
java - 使用 StepVerifier 测试 Mono.delay
我正在尝试Mono.delay
使用StepVerifier
. 我的代码如下:
我得到以下堆栈跟踪
跟踪源代码后,似乎执行器在方法上被关闭Schedulers.setFactory
我想知道我是否在这里遗漏了什么。
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.AbstractLifecycleDispatcher.route(AbstractLifecycleDispatcher.java:67) 在 reactor.event.dispatch.AbstractMultiThreadDispatcher$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 次。即使我们有不错的服务器配置,我也找不到解决这个问题的方向。
谁能帮我解决这个问题。请分享你的想法。
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:
project-reactor - 测试 Mono.sequenceEqual
我试图弄清楚如何sequenceEqual
在Mono
. 我的代码如下:
这是我得到的堆栈跟踪
java - Project Reactor 超时处理
我有三个与 Project Reactor 有关的问题,我将在下面问他们。从我拥有的代码开始(它将被简化以更容易理解问题)。
并测试:
所以和问题:
- 如何中断调用
fun1
并立即返回错误?(也许我做错了什么,但看起来错误不是在超时后而是在调用回调之后返回) - 为什么
doOnSuccess
和同时doOnCancel
调用?(我预计会调用(1)或(2),但不会同时调用两者) - 以及如何处理以下情况:
- 想象在代码
Mono.just("hello")
中正在获取连接; - 在
callback
我正在做一些与连接有关的事情并获得一些结果(Mono<Integer>
在我的情况下); - 最后(成功或失败)我想释放会话(我尝试在(1)中这样做)。
- 想象在代码