问题标签 [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 - Java响应式框架的比较
我看到许多框架/库声称它们可以帮助在 Java 中构建反应式应用程序,例如:Akka、Vert.x、RxJava、Reactor、QBit 等。
它们似乎有不同的方法、功能、优点、缺点等。我找不到详细的比较。有关于这些框架中的每一个的文档,但对我来说理解这些差异是不够的。
主要的 Java 反应式框架之间有什么区别?
哪些应用程序要求可以推动 Java 反应式框架的选择?
感谢您的时间。
unit-testing - Project Reactor:等待广播员完成
有一个广播器,它接受字符串并将它们附加到 StringBuilder。
我想测试一下。
我不得不Thread#sleep
等待,而广播员完成字符串的处理。我想删除sleep
.
我尝试使用Control#debug()
不成功。
java - 带有 DeferredResult 和 Reactor 的 Spring 异步 REST
这是我可以详细说明的最佳想法,以在 REST 调用中获得与 Reactor 的异步性,以提高可用性:我不满意..关于如何做得更好的任何想法?
休息接口:
事件包装器:
事件消费者:
reactor - 由于缺乏 gradle 依赖关系,无法构建 https://github.com/reactor/reactor-samples
我使用 Gradle 插件在 eclipse 中克隆并导入了 gradle 项目。
但我收到所有反应堆类的导入错误。找不到项目中提到的BUILD.SNAPSHOTS。
./gradlew compileJava :compileJava
FAILURE:构建失败并出现异常。
出了什么问题:无法解析配置 ':compile' 的所有依赖项。
找不到 io.projectreactor:reactor-stream:2.5.0.BUILD-SNAPSHOT。在以下位置搜索:文件:/Users/debasish/.m2/repository/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml 文件:/Users/debasish/.m2/repository /io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.pom 文件:/Users/debasish/.m2/repository/io/projectreactor/reactor-stream/ 2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.jar https://repo1.maven.org/maven2/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/maven -metadata.xml https://repo1.maven.org/maven2/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.pom https://repo1.maven.org/maven2/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.jar http://repo.spring.io /release/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml http://repo.spring.io/release/io/projectreactor/reactor-stream/2.5.0.BUILD- SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.pom http://repo.spring.io/release/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0 .BUILD-SNAPSHOT.jar https://jcenter.bintray.com/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://jcenter.bintray.com/io/projectreactor /reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.pom https://jcenter.bintray.com/io/projectreactor/reactor-stream/2.5.0.BUILD-SNAPSHOT/reactor-stream-2.5.0.BUILD-SNAPSHOT.jar 要求:io.projectreactor.springone:reactor-样本:0.2.0 找不到 io.projectreactor:reactor-bus:2.5.0.BUILD-SNAPSHOT。在以下位置搜索:文件:/Users/debasish/.m2/repository/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml 文件:/Users/debasish/.m2/repository /io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.pom 文件:/Users/debasish/.m2/repository/io/projectreactor/reactor-bus/ 2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.jar https://repo1.maven.org/maven2/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/maven -元数据.xml https://repo1.maven.org/maven2/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.pom https://repo1.maven.org /maven2/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.jar http://repo.spring.io/release/io/projectreactor/reactor- bus/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml http://repo.spring.io/release/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0 .BUILD-SNAPSHOT.pom http://repo.spring.io/release/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.jar https:// /jcenter.bintray.com/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://jcenter.bintray.com/io/projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.pom https://jcenter.bintray.com/io /projectreactor/reactor-bus/2.5.0.BUILD-SNAPSHOT/reactor-bus-2.5.0.BUILD-SNAPSHOT.jar 要求:io.projectreactor.springone:reactor-samples:0.2.0 找不到 io.projectreactor :reactor-groovy:2.5.0.BUILD-SNAPSHOT。在以下位置搜索:文件:/Users/debasish/.m2/repository/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml 文件:/Users/debasish/.m2/repository /io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.pom 文件:/Users/debasish/.m2/repository/io/projectreactor/reactor-groovy/ 2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.jar https://repo1.maven.org/maven2/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://repo1.maven.org/maven2/io/projectreactor/reactor -groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.pom https://repo1.maven.org/maven2/io/projectreactor/reactor-groovy/2.5.0.BUILD- SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.jar http://repo.spring.io/release/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml http: //repo.spring.io/release/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.pom http://repo.spring.io/release /io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.jar https://jcenter.bintray.com/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://jcenter.bintray.com/io/projectreactor/reactor-groovy/2.5 .0.BUILD-SNAPSHOT/reactor-groovy-2.5.0.BUILD-SNAPSHOT.pom https://jcenter.bintray.com/io/projectreactor/reactor-groovy/2.5.0.BUILD-SNAPSHOT/reactor-groovy- 2.5.0.BUILD-SNAPSHOT.jar 要求:io.projectreactor.springone:reactor-samples:0.2.0 找不到 io.projectreactor.spring:reactor-spring-context:2.5.0.BUILD-SNAPSHOT。在以下位置搜索:文件:/Users/debasish/.m2/repository/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml 文件:/Users/debasish/ .m2/repository/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.pom 文件:/Users/debasish/.m2/存储库/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.jar https://repo1.maven.org/maven2/io /projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://repo1.maven.org/maven2/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.pom https:// /repo1.maven.org/maven2/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.jar http://repo。 spring.io/release/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml http://repo.spring.io/release/io/projectreactor/spring/reactor -spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.pom http://repo.spring.io/release/io/projectreactor/spring/reactor-spring-上下文/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.jar https://jcenter.bintray.com/io/projectreactor/spring/reactor-spring-context/2.5.0.BUILD-SNAPSHOT/maven-metadata.xml https://jcenter.bintray.com/io/projectreactor/spring /reactor-spring-context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.pom https://jcenter.bintray.com/io/projectreactor/spring/reactor-spring- context/2.5.0.BUILD-SNAPSHOT/reactor-spring-context-2.5.0.BUILD-SNAPSHOT.jar 要求:io.projectreactor.springone:reactor-samples:0.2.0
尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。
构建失败
java - 带有 Netty TCP 服务器的 Project Reactor - 解码消息时 ByteBuff 大小停留在 1024
我们正在使用 Spring Boot 版本1.2.8.RELEASE
,它具有org.projectoreactor.*
与 Reactor 版本的托管依赖项1.1.6.RELEASE
。
我面临的问题是在我的自定义编解码器 ( reactor.io.encoding.Codec
) 中,给定的缓冲区 ( reactor.io.Buffer
) 的上限为 1024 字节,但我的消息超出了该限制。当我尝试解码消息时,它不是完整的消息(只是部分消息)并且我的解码失败,因为它期望完整的消息。
问题一:如何增加Buffer bytes
( reactor.io.Buffer
) 使我的 apply 函数正常工作?下面的简单示例:
问题二:如何将apply函数(上图)分块?这意味着当 Netty 的缓冲区达到其限制时,我的 apply 函数可以创建自己的缓冲区(并管理缓冲区),最终我可以解码消息并且 Reactory/Netty 可以将其传递给消费者。
注意:在我的“主要”方法中,以下内容用于设置环境。Netty 服务器在 Windows 下运行,客户端在 linux 上。这与 TCP 的 Windows 实现有关吗?
rx-java - 反应式ipc、反应式流io、反应式流网和反应式套接字是什么关系
我在 Github 上发现了很多关于响应式流的 repos,似乎也有类似的。
但是,许多存储库几个月都没有更新。
我想知道他们之间的关系,我可以专注于最新的回购。
反应式ipc:https ://github.com/reactive-ipc/reactive-ipc-jvm
反应流网:https ://github.com/reactive-streams/reactive-streams-net-jvm
反应式套接字:https ://github.com/ReactiveSocket/reactivesocket-java.git
spring - Spring、Reactor 和@Consumer
我有一个使用反应器进行异步任务的 Spring Boot 项目。我已经开始将项目升级到 Spring Boot 1.3.1 的任务。作为副作用,它似乎正在使用新版本的反应器。我试图弄清楚如何让它与新的反应堆一起工作。我正在使用 @Consumer 和 @Selector 注释来告诉它要为这样的事件使用哪些类和方法:
我之前通过在服务类中执行此操作来通知接收方:
我发现我需要将 rootReactor 的内容更改为:
但我不确定我需要在消费者方面做什么。@Selector 不再支持reactor 属性,所以可以改成eventBus,但是detault 的事件总线现在叫什么名字呢?当我尝试仅使用 value 属性的 @Selector 时,我开始获得 NPE。
java - reactor lmax 线程转储
试图理解下面的(部分)堆栈跟踪。使用spring的项目reactor 2.0.4。
我得到了应该为工作线程创建任务和分配任务的任务调度程序线程。此时应用程序挂起(工作线程不记录任何内容,在不同时间进行的线程转储始终相同等)。
我可以根据以下行声明环形缓冲区已满:at reactor.jarjar.com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:136)
如果环形缓冲区已满,为什么我的工作线程没有执行任何这些任务?环形缓冲区状态会损坏吗?
java - 重构传统 SOA 系统以使用非阻塞异步微服务
我刚刚开始尝试了解 RxJava,以便我可以使用项目反应器重构 Legacy SOA 系统来使用非阻塞异步微服务。
目前我正在做一个可行性研究,并考虑使用像勺子这样的东西来转换遗留服务代码(但这与这个问题无关)
我想知道如何使用反应器总线请求/回复语法来替换这个同步服务代码。或者即使我应该使用完全不同的反应器构造。
这是遗留 soa 服务的示例,它是人为设计的,因此它可能并不完全合理,但基本上每个服务都依赖于最后一个服务的结果。
基本上,这是一个使用 dispatcher.runSync 调用其他服务的服务......我只是在寻找一个起点来研究如何可能使用反应器甚至另一个库来将这种类型的语法转换为异步非阻塞代码.
在这一点上,我正在考虑非常模糊的回调/某种 Promise 类型结构。
就像第一次调用另一个服务是
如果这改为返回一个包含 serviceResults 映射的 Promise 对象,那么该方法的其余部分可以移动到 Promise onComplete 块中,结果将是构成此服务方法的一组深度嵌套的 onComplete 代码块。
或者查看 reactor-bus 文档,类似于以下内容,在很多层面上都没有意义,我只是对反应器了解得不够多,不知道为什么它没有意义,或者接下来要学习什么让我理解它的原因没有意义
我意识到开始研究反应式编程范式是一个相当奇怪的地方。但是替换这个同步服务代码是我的最终目标,如果我至少理解了语法,我可以从那里向后工作。