Rx java 使用Resilience4j速率限制器降低RxJava3的流动速度

Rx java 使用Resilience4j速率限制器降低RxJava3的流动速度,rx-java,resilience4j,rx-java3,Rx Java,Resilience4j,Rx Java3,我尝试过Resilience4J示例,但速率限制器似乎不符合我的要求: @Test public void simpleReactiveWithRateLimiter() { RateLimiterConfig rateLimiterConfig = RateLimiterConfig.custom() .limitForPeriod(5) .limitRefreshPeriod(Duration.ofSeconds(1)) .timeou

我尝试过Resilience4J示例,但速率限制器似乎不符合我的要求:

@Test
public void simpleReactiveWithRateLimiter() {
    RateLimiterConfig rateLimiterConfig = RateLimiterConfig.custom()
        .limitForPeriod(5)
        .limitRefreshPeriod(Duration.ofSeconds(1))
        .timeoutDuration(Duration.ofMillis(100))
        .build();
    RateLimiterRegistry rateLimiterRegistry = RateLimiterRegistry.of(rateLimiterConfig);
    RateLimiter rateLimiter = rateLimiterRegistry.rateLimiter("tenPerSec", rateLimiterConfig);
    Flowable.interval(1, TimeUnit.MILLISECONDS)
        .takeWhile(f -> f < 100)
        .compose(RateLimiterOperator.of(rateLimiter))
        .blockingSubscribe(i -> log.info("Received {}", i));
}
@测试
public void simpleReactiveWithRateLimiter(){
RateLimiterConfig RateLimiterConfig=RateLimiterConfig.custom()
.limitForPeriod(5)
.limitRefreshPeriod(持续时间为秒(1))
.timeoutDuration(持续时间单位:百万(100))
.build();
RateLimiterRegistry RateLimiterRegistry=RateLimiterRegistry.of(rateLimiterConfig);
RateLimiter RateLimiter=rateLimiterRegistry.RateLimiter(“tenPerSec”,rateLimiterConfig);
可流动。间隔(1,时间单位。毫秒)
.takeWhile(f->f<100)
.compose(RateLimiterOperator.of(rateLimiter))
.blockingSubscribe(i->log.info(“Received{}”,i));
}

它仍能在不到200毫秒的时间内处理100个项目。我一定是做错了什么,不知道是什么。有人能帮忙吗?

Resilience4j RateLimitor不限制一个订阅(或一个可流动的订阅)所消耗的项目的速率。 RateLimitor限制了一个可流动数据库上的(并发)订阅数。
例如,如果许多客户端想要订阅同一个上游可流动的,例如HTTP调用。

我误解了它的行为,那么。。。