Reactor BISMUTH-SR7 发布!

发布 | Simon Baslé | 2018 年 2 月 28 日 | ...

代表整个 Reactor 团队,我很高兴地宣布 Reactor BISMUTH-SR7 发布版本现已可用。一如既往,我们建议使用 reactor-bom 物料清单 (Bill Of Material)

及时配合 Spring Boot 2,此发布版本带来了核心、附加组件和 reactor-netty 的改进和错误修复。

这篇博客文章重点介绍了 SR7 和上周 SR6 发布版本中的最重要更改。

Reactor-Core 3.1.5

3.1.3 以来有什么新变化?请参阅 3.1.4.RELEASE3.1.5.RELEASE 的完整发布说明。核心更改包括超过 15 项改进和错误修复。

此版本中新增了一些操作符:例如,mergeOrdered 已添加到 FluxParallelFlux。它允许您通过持续选取所有源中根据提供的 Comparator 定义的最小可用值来合并多个源。

为方便起见,我们还添加了 Flux#concatWithValues(T…​)Mono#thenReturn(T),允许轻松地与标量值进行连接/继续。

为了启动我们 2018 年的内省主题,我们的 Scheduler 实现是 Scannable 的,因此当与 Scannable#from 一起使用时是有意义的。

值得注意的更新考虑因素包括修复 Mono.zip 的行为,使其与 Flux.zip 的行为保持一致:现在,一旦其中一个源以完成或抛出错误,它就会取消正在进行的源。如果您一起 zip 的所有 Mono 源都保证有值,则此更改没有任何影响。

提示

如果您不关心结果,但想确保所有 N 个源都已完成,则优先使用 Mono.when。特别要注意 .zip(…​).then() 模式,应将其替换为 .when(…​)

另一个用户不太可能注意到的更改是修复了一些类的可见性,这些类从未打算公开

  • 3.1.3.RELEASE 中的 MPSC Queue 实现现在通过 Queues.unboundedMultiproducer() 以普通 Queue 的形式暴露。这个具体类现在是包私有的。

  • FluxDelaySequence, FluxIndexFluxIndexFuseable 现在也是包私有的。

错误修复还包括一些对 GC 友好的修复,在 forceShutdown() 的情况下停止不必要地保留 elastic Scheduler workers 和基于事件循环的 Processors 的后台任务。

Reactor Addons 3.1.6

3.1.4 以来有什么新变化?请参阅 3.1.5.RELEASE3.1.6.RELEASE 的完整发布说明。

Addons 模块进行了一些修复和改进。

新引入的用于缓存的“有主见”辅助工具发布时包含一些应该是 public 的包私有接口。这令人尴尬。:( 现在已修复。

引入了一种新的 Repeat#create 工厂方法变体。它允许结合 Predicate 和最大重复尝试次数。

注意

说到 Repeat 及其姊妹操作符 Retry,一些用户注意到它们的默认行为与核心模块中简化的 repeat()retry() 变体有点不一致:如果没有进一步配置,辅助工具被限制为单次尝试,而核心版本则会持续重复或重试。此外,通过链接 timeout 会改变这一点,它会切换到无限制的尝试行为(这已在其 Javadoc 中澄清)。

我们正在考虑在 3.2.0 中将此行为与核心对齐。如果您有任何见解或反馈,请在 issue 中发表评论。

Reactor-Netty 0.7.5

0.7.3 以来有什么新变化?请参阅 0.7.4.RELEASE0.7.5.RELEASE 的完整发布说明。

Reactor-Netty 也进行了一些修复,主要围绕连接池和连接生命周期。

新的改进包括支持 Expect 100-continue,以及通过在相关时将 Netty pipelines 传递给 Context 来更好地处理 Reactor Context

压缩支持也得到了改进,允许按响应激活压缩。这略微取代了已经存在的 minCompressionThreshold 功能(尽管它不是 100% 可靠)。它基于一个 BiPredicate<Req,Resp>,例如,可以仅对某些内容类型激活压缩。最小压缩阈值选项由一个 content-length 谓词支持。

下一步是什么

我们鼓励您获取这些新的构件,但是,如果您是 Spring Boot 用户,您会很高兴地了解到,一旦您升级到即将发布的 Spring Boot 2.0.0 GA 版本,您将获得同样的改进。:)

一如既往,欢迎反馈。请到 Gitter 讨论此版本,或考虑在 GitHub 上提交 issue

同时,祝您反应式编程愉快!

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

先行一步

VMware 提供培训和认证,助您快速前进。

了解更多

获取支持

Tanzu Spring 通过一份简单的订阅即可提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看全部