project-reactor 相关问题

Reactor是一个基础库,用于构建JVM上的反应式快速数据应用程序。它提供了Java,Groovy和其他JVM语言的抽象,使构建事件和数据驱动的应用程序更容易。它也非常快。

HTTPClient 推荐

我创建了一个 Webclient 定制器,它使用自定义 ConnectionProvider 创建 HTTPClient @豆 WebClientCustomizer webClientCustomizer(CustomizedWebClientProperties 属性) {

回答 1 投票 0

使用 Spring boot + WebFlux 进行全局错误处理

在 Spring boot Rest 控制器中使用反应式编程时,我们如何全局处理异常? 我认为 @ControllerAdvice 不会工作,因为我已经尝试过这个但它不成功......

回答 4 投票 0

不使用block()/blockFirst()/blockLast()将mono转换为java对象

我想在不使用block()/blockFirst()/blockLast()的情况下将mono转换为object java。请告诉我转换的方法。

回答 3 投票 0

spring webflux 中的 then、thenEmpty、thenMany 和 flatMapMany 是什么?

不太明白spring webflux中Flux或Mono上的then、thenEmpty、thenMany和flatMapMany的用法和区别。

回答 2 投票 0

使用WebClient发送具有不同输入值的POST请求的最佳方式

我正在尝试使用 WebClient 通过在 POST 请求中以 JSON 字符串形式发送整数值来进行 API 调用。我有超过 100K 个值要发送请求。

回答 1 投票 0

下沉。在订阅者数量第一次达到 0 后,许多默默地变得毫无用处

如果我创建一个 Sinks.Many 实例: Sinks.Many sink = Sinks.many().multicast().onBackPressureBuffer(); 然后在另一个线程(T1)中,我订阅它的 Flux: 新线程(() -> { ...

回答 1 投票 0

为 Spring WebClient 配置每个请求的超时?

我知道 Spring 5 webflux 如何在 Webclient 上设置超时,但这会为所有请求全局配置超时。我正在寻找一种根据每个请求配置超时的方法。 IE。

回答 2 投票 0

Spring Boot Reactive:向控制器添加 @Validate 注解会导致相关测试失败

我目前正在 Sprig Boot(2) 反应式项目中工作。所有 CRUD 端点和测试都工作正常。然后我决定在创建待办事项时添加验证,为此我添加了注释...

回答 1 投票 0

如何使用Reactor的StepVerifier来验证Mono是否为空?

我正在使用 StepVerifier 来测试值: @测试 公共无效测试材料(){ 事物事物=新事物(); Mono 结果 = Mono.just(thing); StepVerifier.create(结果).consumeNextW...

回答 3 投票 0

在反应流运算符(项目反应器)中使用“try catch”是错误的吗?

我正在使用项目reactor探索反应流,并且我有一个用例,如果在处理当前事件期间发生错误(例如,deseriali...

回答 1 投票 0

将流转换为单声道

如何使用流限制从流中重新调用 Mono? 需要从流中获取列表并检查大小元素 var peopleResult = Persons.getSomething().stream().limit(1).toList(); 我想添加列表到 单声道。

回答 1 投票 0

当flatMap返回一个空的Mono时如何调用switchIfEmpty?

我的标题听起来很混乱,所以让我用一些命令式伪代码来解释我想要做什么 Mono func() { Mono myThing = getMyThing(); 如果 myThing 不是 em...

回答 2 投票 0

如何结合Mono和Flux来创建一个对象?

我想创建一个对象,该对象由一个Mono和一个Flux组成。 假设有 2 个服务 getPersonalInfo 和 getFriendsInfo。 Person 需要这两种服务来创建对象。拉链...

回答 2 投票 0

Java 响应式应用程序的性能分析

JVM 有一套很棒的工具来查找应用程序中的热点。 通过启用 JMX 并与 JProfiler / VisualVm 连接,我们可以很快找到工作流程中花费最多时间的方法。

回答 1 投票 0

Java Reactor + Caffeine 缓存 + Mockito = 严格存根参数不匹配

我在 Spring-boot 项目中使用 Java Reactor,我需要在其中一个中间步骤中缓存我的数据。它在 Spring Boot 3、Java 17、Junit5 上...... 我的缓存服务如下所示: @Comp...

回答 1 投票 0

Blockhound 在网络客户端上进行网络调用时出错

我们正在使用reactor框架并使用WebClient进行外部网络调用。我们使用 blackhound 来确保我们的代码是非阻塞的。然而,blockhound 抛出异常

回答 1 投票 0

如何在Java中对Reactor Flux中的元素进行缓冲和分组

给定无限通量的对象,其中每个对象都有一个 ID,我如何使用 Flux 创建按 ID 属性分组的更新缓冲列表(保留最后发出的值)? 谢谢 例子 哦...

回答 3 投票 0

Project Reactor 中 doOnComplete() 和 subscribe() 第三个参数的区别

我目前正在使用 Project Reactor,我遇到了一个场景,我不确定是否使用 doOnComplete() 还是 subscribe() 的第三个参数。两者似乎都是在酒吧时被称为...

回答 1 投票 0

switchIfEmpty 在之前的 flatMap 返回 Mono.error() 时执行

我有一个带有类似代码的 Spring Gateway 过滤器: 公共 Mono 示例{ 返回 redisTemplate.opsForValue() .get(缓存键) .flatMap(this::throwMono) .

回答 1 投票 0

subscribe()方法是否阻塞?

我从 Project Reactor 开始,我无法理解为什么这段代码无限地打印“Hello”并且从不返回 Disposable 对象。 Flux Flux = Flux.generate(sink -&... 我从 Project Reactor 开始,我无法理解为什么这段代码无限地打印“Hello”并且从不返回 Disposable 对象。 Flux<Object> flux = Flux.generate(sink -> sink.next("Hello")); Disposable disposable = flux.subscribe(System.out::println); disposable.dispose(); System.out.println("This doesn't print"); 我认为,当调用 subscribe() 方法时,它必须立即返回 Disposable 对象,如果我愿意,我可以使用该对象取消订阅。我知道这个 subscribe 方法中的代码在同一个线程中运行,如果我在 delayElements 调用之前替换 subscribe 方法,那么下面的代码将起作用,因为它在单独的守护线程中运行,所以可以解释为什么吗?它是否停止在 subscribe 方法并且不返回 Disposable 以及是否有任何方法可以通过调用 subscribe 方法来管理订阅?是否可以类比delayElements方法,在单独的线程中执行,并且调用subscribe方法的结果立即返回Disposable? 我找不到这个问题的具体答案。在我看到的所有示例中,要么是有限数据流,要么使用了delayElements方法。 是的,subscribe()在这个特定场景中会阻塞。 Reactor 是并发无关的,这意味着默认情况下它不会对您强制执行任何线程/异步性,并在调用线程(在本例中为主线程)上执行管道。 您可以使用 subscribeOn 或 publishOn 显式更改此设置,也可以使用 delayElements 等某些运算符隐式更改。 Flux<Object> flux = Flux.generate(sink -> sink.next("Hello")).publishOn(Schedulers.parallel()); Disposable disposable = flux.subscribe(System.out::println); disposable.dispose(); System.out.println("This doesn't print");

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.