领先一步
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 团队的密切合作,以便轻松地获得这些很棒的功能。