在反应堆应用程序中测试对通量的反压应用程序

时间:2019-05-10 08:17:59

标签: 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本身不允许有多个订阅者。

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

感谢所有人。

1 个答案:

答案 0 :(得分:0)

Reactive Streams项目具有一个测试套件(称为TCK),用于测试反应性流(包括背压)的实现。我用它来测试发布者界面的实现:https://github.com/akaigoro/df4j/tree/API-7/df4j-reactive-tck