Reactor 3 (6): 背压 Backpressure 使用
有这样的情况,上游传递到下游的数据需要进行处理,然而上游推送的速度又很快,下游由于资源等原因来不及处理;如果这时还是通过不限制上游速度的方式推送数据,就会出问题,因此Reactive Streams有两一种处理方式,就是通过request的机制向上游传递信号,并指定接收数量;通过这种方法将 push 模型转化为 push-pull hybrid ,这就是backpressure的用法。 通过编写Subscriber实现backpressure 下面介绍backpressure比较原始的写法,通过构建Subscriber控制request的大小: @Test public void rawBackPressure ( ) { Flux < String > flux = Flux . range ( 1 , 10 ) . map ( i - > String . valueOf ( i ) ) . log ( ) ; flux . subscribe ( new Subscriber < String > ( ) { private int count = 0 ; private Subscription subscription ; private int requestCount = 2 ; @Override public void onSubscribe (