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)。则反而成为了有界缓冲区。有界会导致如果缓冲区不足以缓冲数据时,会报错
相关推荐
掘金-我是哪吒6 小时前
分布式微服务系统架构第99集:缓存系统的实战级优化案例
分布式·缓存·微服务·云原生·架构
酱学编程11 小时前
redis 延迟双删
数据库·redis·缓存
dr李四维18 小时前
解决缓存穿透的布隆过滤器与布谷鸟过滤器:谁更适合你的应用场景?
redis·算法·缓存·哈希算法·缓存穿透·布隆过滤器·布谷鸟过滤器
qq_2602412321 小时前
怎么检查网站CDN缓存是否生效
运维·前端·缓存
Fancier__1 天前
Redis 缓存 + MySql 持久化 实现点赞服务
redis·mysql·缓存·增量同步·点赞
Yasen^o1 天前
Redis高可用
数据库·redis·缓存
爱吃鱼饼的猫2 天前
【SpringBoot篇】如何使用CommandLineRunner实现缓存预热
spring boot·spring·缓存
佩奇的技术笔记2 天前
高级:Redis 面试题精讲
数据库·redis·缓存
纪元A梦2 天前
Redis最佳实践——搜索与分类缓存详解
数据库·redis·缓存
寻梦人121382 天前
缓存工具类
java·redis·缓存