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)。则反而成为了有界缓冲区。有界会导致如果缓冲区不足以缓冲数据时,会报错
相关推荐
番茄炒鸡蛋加糖2 小时前
缓存三大问题
缓存
江晓鱼未暖7 小时前
十七、Redis 核心原理与架构详解
大数据·数据库·数据仓库·redis·缓存·架构
小罗水7 小时前
第13章 Redis 缓存、幂等锁与任务状态
数据库·redis·缓存
热心市民lcj7 小时前
Spring Boot 整合 Caffeine 本地缓存实战
spring boot·后端·缓存
zx1154509 小时前
【热点 Key 探测与加长缓存 TTL 实战】
缓存
toooooop81 天前
如何用 ss + ps 精准定位本机 Redis 的“隐形”消费者?
linux·数据库·redis·缓存
软萌萌的11 天前
C#中的多级缓存架构设计与实现深度解析
缓存·c#·wpf
醉城夜风~1 天前
HTML表单域学习博客:表单标签、输入框、按钮详解
android·java·缓存
肥胖小羊1 天前
企业微信应用的 Token 缓存策略与分布式锁高可用设计
分布式·缓存·企业微信
Rooting++1 天前
redis注册为服务
数据库·redis·缓存