flux中的缓存

  1. cache,onBackpressureBuffer。都是缓存。cache可以将hot流的数据缓存起来。onBackpressureBuffer也是缓存,但是当下游消费者的处理速度比上游生产者慢时,上游生产的数据会被暂时存储在缓冲区中,防止丢失。

  2. Flux.range 默认带有无界缓冲区

复制代码
Flux.interval 默认下游的consume速率不能低于produce的速率,否则直接报错。但是可以增加onBackpressureBuffer/cache让数据缓存
3. Flux.fromIterable 经过测试,应该也是属于无界缓冲区
  1. zipWith自带32长度的缓存,因此可以做到适配两个flux。如果其中一个flux超过了32的缓冲,就会报错
复制代码
Flux<Integer> existingFlux = Flux.interval(Duration.ofMillis(1)).map(t-> Integer.valueOf(t.intValue()));
Flux<Long> s2 = Flux.interval(Duration.ofHours(1));
复制代码
existingFlux.log()
        .zipWith(s2, (httpData, existingData) ->
                existingData // 合并两个数据
        ).subscribe();
Thread.sleep(1000*10);

报错:

  1. 注意默认带有无界缓冲区时,如果设置了onBackpressureBuffer(size)。则反而成为了有界缓冲区。有界会导致如果缓冲区不足以缓冲数据时,会报错
相关推荐
SPC的存折2 小时前
1、Redis数据库基础
linux·运维·服务器·数据库·redis·缓存
身如柳絮随风扬10 小时前
Redis如何实现高效插入大量数据
数据库·redis·缓存
予早10 小时前
Redis 设置库的数量
数据库·redis·缓存
黑金IT11 小时前
vLLM本地缓存实战,重复提交直接复用不浪费算力
人工智能·缓存
Rick199313 小时前
Redis查询为什么快
数据库·redis·缓存
Rick199314 小时前
Redis 底层架构图
数据库·redis·缓存
Arva .15 小时前
Redis 数据类型
数据库·redis·缓存
笑我归无处15 小时前
Redis和数据库的数据一致性问题研究
数据库·redis·缓存
小红的布丁16 小时前
操作系统与高性能 IO:零拷贝、一次读 IO、CPU 缓存与伪共享
缓存
SPC的存折16 小时前
(自用)LNMP-Redis-Discuz5.0部署指南-openEuler24.03-测试环境
linux·运维·服务器·数据库·redis·缓存