131得票1回答
使用 Reactor 抛出异常的正确方式

我刚接触Reactor项目和响应式编程。 目前我正在处理类似以下代码的部分: Mono.just(userId) .map(repo::findById) .map(user-> { if(user == null){ thro...

100得票3回答
Akka或者Reactor

我正在启动一个新项目(基于Java)。我需要将其构建为模块化,分布式和弹性架构。 因此,我希望业务流程之间可以相互通信,具有互操作性,但也是独立的。 目前我正在查看两个框架,除了它们在年龄上的差异外,它们表达了两种不同的观点: - Akka(http://akka.io) - React...

77得票5回答
响应式流中的Mono与Flux对比

根据文档: Flux是一个可以发出0..N个元素的流: Flux<String> fl = Flux.just("a", "b", "c"); Mono 是一个包含0到1个元素的流: Mono<String> mn = Mono.just("hello")...

64得票4回答
Mono.defer()是什么意思?

我在一些Spring webflux代码中遇到了Mono.defer()。 我在文档中查找了这个方法,但不理解其中的解释: "创建一个Mono提供程序,该程序将为每个下游订阅者提供目标Mono" 请给我一个解释和一个例子。有没有一个包含Reactor示例代码(单元测试)的地方可以供我参考...

64得票2回答
Mono switchIfEmpty() 总是被调用

我有两种方法。 主要方法:@PostMapping("/login") public Mono<ResponseEntity<ApiResponseLogin>> loginUser(@RequestBody final LoginUser logi...

61得票2回答
如何使用 Reactor 的 StepVerifier 来验证一个 Mono 是否为空?

我正在使用 StepVerifier 来测试值:@Test public void testStuff() { Thing thing = new Thing(); Mono<Thing> result = Mono.just(thing); StepVer...

60得票3回答
map vs flatMap in reactor

我已经找到了很多关于RxJava的答案,但我想了解它在Reactor中是如何工作的。 我的当前理解非常模糊,我倾向于认为map是同步的,而flatMap是异步的,但我真的无法理解它。 这里有一个例子: files.flatMap { it -> Mono.just(Path...

59得票12回答
如何在Spring WebFlux中记录请求和响应体

我希望在使用Kotlin的Spring WebFlux REST API中拥有请求和响应的集中式日志记录。到目前为止,我尝试了以下方法:@Bean fun apiRouter() = router { (accept(MediaType.APPLICATION_JSON) and "/...

58得票5回答
如何检查 Mono 是否为空?

我正在使用Spring Boot 2.0和 Kotlin开发一个应用,使用WebFlux框架。我想在保存交易之前检查用户ID是否已存在。我卡在了一个简单的事情上,就是验证Mono是否为空。fun createTransaction(serverRequest: ServerRequest) :...

56得票1回答
Spring WebFlux和Reactor的线程模型

目前正在使用 Spring 5.0.0.RC2、Reactor 3.1.0.M2 和 Spring Boot 2.0.0.M2 进行响应式编程实验。 想知道 WebFlux 和 Reactor 使用的并发和线程模型,以便正确编写应用程序并处理可变状态。 Reactor文档说明该库被认为是并发无...