java - 在 Reactor 应用程序中测试对 Flux 的背压应用

标签 java spring-boot reactive-programming project-reactor backpressure

我正在使用 Reactor 读取 Kafka 主题。每条消息的详细说明都需要对 MongoDB 进行查询,这比从 Kafka 主题读取消息要慢。因此,我对流应用了反压处理。

receiver.receive()
        // Limiting the reading operation
        .limitRate(50)
        // processMessage accesses to the database
        .flatMap(this::processMessage)
        .publish()
        // Simplification here
        .subscribe();

我正在使用ConnectableFlux拥有多个 KafkaReceiver 生产者订阅者。 KafkaReceiver 本身不允许多个订阅者。

我需要测试我的代码是否正确地将反压应用于流。我该如何使用一些集成测试来做到这一点?

谢谢大家。

最佳答案

Reactive Streams项目有一个测试套件(称为 TCK)来测试 react 流(包括背压)的实现。我用它来测试 Publisher 接口(interface)的实现:https://github.com/akaigoro/df4j/tree/API-7/df4j-reactive-tck .

关于java - 在 Reactor 应用程序中测试对 Flux 的背压应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56073426/

相关文章:

java - Spring Security方法规则: returned value contains a Collection

java - 是否可以 "intercept"复制/剪切/粘贴操作并将其替换为我自己的代码?

java - 通过 HTTP 保护 Spring Data RepositoryRestResource (CrudRepository),但不是在内部

java - 我的 application.properties 文件中的属性显示为灰色,我无法配置数据源 : 'url' attribute is not specified

java - maven使用spring bootparent创建可执行jar包

java - 识别 Project Reactor 中 react 链中字节数组的来源

java - 分布式处理 : C++ equivalent of JTA

java - Spring 测试属性文件被主属性文件覆盖

r - 在适用于 R 的 Shiny 应用程序中,如何延迟响应式的触发?

c++ - rxcpp 简单可观察<int>