Reactor Flux 操作符

Reactor Flux 操作符

Flux常见操作符。

1 buffer

		//每次缓存一定数量的元素到List buckets里,并push出去
        Flux.range(1, 30).buffer(20).subscribe(System.out::println);
        System.out.println("---------- 分割线1 ----------");

        //每次缓存一定数量,并跳过一定数量的元素到List buckets里,并push出去
        Flux.range(1, 30).buffer(10,10).subscribe(System.out::println);
        System.out.println("---------- 分割线2 ----------");

        //每次缓存一定数量,并跳过一定数量的元素到指定的Set buckets里,并push出去
        Flux.range(1, 30).buffer(20,20, HashSet::new).subscribe(System.out::println);
        System.out.println("---------- 分割线3 ----------");

        //指定时间内,每次缓存一定数量的元素到List buckets里,并push出去
        Flux.intervalMillis(100).bufferMillis(500).take(3).toStream().forEach(System.out::println);
        System.out.println("---------- 分割线4 ----------");

        //缓存元素到List buckets里当符合条件时,把元素push出去
        Flux.range(1, 10).bufferUntil(i -> i % 2 == 0).subscribe(System.out::println);
        System.out.println("---------- 分割线5 ----------");

        //把符合条件的缓存元素到List buckets里并把元素push出去
        Flux.range(1, 10).bufferWhile(i -> i % 2 == 0).subscribe(System.out::println);

执行结果:

---------- buffer ----------
11:02:21.193 [main] DEBUG reactor.util.Loggers$LoggerFactory - Using Slf4j logging framework
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
---------- 分割线1 ----------
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
---------- 分割线2 ----------
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
---------- 分割线3 ----------
[0, 1, 2, 3]
[4, 5, 6, 7, 8]
[9, 10, 11, 12, 13]
---------- 分割线4 ----------
[1, 2]
[3, 4]
[5, 6]
[7, 8]
[9, 10]
---------- 分割线5 ----------
[2]
[4]
[6]
[8]
[10]

2 filter

Flux.range(1, 10).filter(i -> i % 2 == 0)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Reactor API 是一个基于Java的响应式编程库,主要用于构建异步、非阻塞和事件驱动的应用程序。 Reactor API 提供了一组函数式的操作符,可以方便地处理数据流。它的核心思想是将数据处理看作是一系列的事件流,通过各种操作符进行转换和处理。 Reactor API 支持多种类型的数据流,比如单个值、集合、时间序列等。它提供了丰富的操作符,可以进行过滤、转换、合并等各种操作。 Reactor API 的核心组件是Flux和Mono。Flux表示包含多个元素的数据流,而Mono则表示包含一个元素的数据流。这两个组件都支持链式调用操作符,可以将多个操作符串联在一起,形成一个处理流水线。 使用 Reactor API 可以有效地处理大量并发请求,因为它基于事件驱动和异步非阻塞的原则。它可以充分利用计算资源,并且具有较低的内存和线程消耗。 Reactor API 与其他的响应式编程库相比具有一些独特的特点。它使用了独特的背压机制,可以有效地处理生产者和消费者之间的速度不匹配问题。此外,Reactor API 还提供了易于理解和维护的代码模式,使得编写复杂的异步代码变得更加容易。 总之,Reactor API 是一个强大的响应式编程库,它提供了丰富的操作符和组件,可以方便地构建异步、非阻塞和事件驱动的应用程序。它的设计理念和性能优势使得它成为处理高并发和复杂业务逻辑的理想选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值