先人一步
VMware 提供培训和认证,助您加速进步。
了解更多[更新] 在我们介绍了 Reactor 2.5 之后,我们将版本号转移到 3.0,以便更好地反映所进行的重大重新设计工作。
原来的 reactor-stream 模块已合并到 Reactor Core 3.0 中。Flux 和 Mono 分别代表 0..N 和 0..1 序列类型,现在涵盖了以下类别的广泛操作:
publish
, publishNext
, cache
, multicast
...buffer
, reduce
, scan
, window
, sample
...filter
, exists
, single
...timeout
, take
, takeUntil
, skip
, skipUntil
...withLatestFrom
, combineLatest
onBackpressureDrop
, onBackpressureLatest
...尽管这些功能已经存在,但我们现在使用的是超高效的 Reactive Streams Commons 操作符实现。
所有 Reactor 3.0 项目都已升级到 Java 8。随着 JVM 市场在 Java 8 上趋于标准化,我们认为没有理由进一步推迟我们的过渡。下面列举一些好处:
reactor.fn
中所有“回溯移植”的功能回调都已替换为 java.util.function
。因此,Reactor 提供了标准的交互契约和具有竞争力的表层 API。Flux
转换为 java.util.stream.Stream
,反之亦然Mono
转换为 CompletableFuture
,反之亦然Optional
安全地创建 Mono
Duration
提供合理的时段支持一些 Java 8 提取器和生成器的实际应用
java.util.stream.Stream<String> stream =
Mono.fromFuture(someCompletableFuture)
.timeout(Duration.ofSeconds(30))
.log("hello")
.flatMap( pojo -> Flux.just(pojo.getId(), pojo.getName())
.toStream();
Flux.fromStream(stream)
.delayMillis(1000L)
.subscribe(System.out::println);
我们以后可能会考虑为 Android 兼容性进行回溯移植,但目前我们的重点是 Java 8 及更高版本的应用。
Flux
和 Mono
操作设计-- 借鉴 Reactive4Java
, RxJava
和 Reactor
多年经验 -- 高效,真正高效,通过操作融合进一步提升效率 -- 来自 Reactive Streams Commons 的更多性能基准测试
Mono
发布-订阅:MonoProcessor<T>
更多详情请参阅 问题跟踪器。
通过本次发布,我们奠定了一个基础,我们认为它对库开发者和应用开发者都将非常有用。我们已准备好收集更多反馈,而我们的下一站将是 Reactor IPC:Reactor Aeron 和 Reactor Netty。这两个 Reactor IPC 模块的宏伟计划已经酝酿数月,旨在帮助您跨越网络边界并考虑背压!其两个鼓舞人心的特质与 Reactor Core 相同:专注于 API 和效率,无需额外的仪式或学术背景。
同时,我们正在加倍努力创造各种入门体验,期待更多的博客、指南以及与 Spring Boot 团队的紧密合作,以便让您轻松地触手可及这份卓越。