领先一步
VMware提供培训和认证,以加快您的进度。
了解更多我代表整个Reactor团队,很高兴地宣布Reactor BISMUTH-SR7
版本现已发布。与往常一样,我们建议使用reactor-bom
物料清单。
为了配合Spring Boot 2,此版本包含对核心、扩展和reactor-netty的改进和错误修复。
这篇博文重点介绍了SR7和上周发布的SR6版本中的最重要的更改。
自
3.1.3
以来的新增内容?请参阅3.1.4.RELEASE
和3.1.5.RELEASE
的完整发行说明。核心更改包括15多项改进和错误修复。
此版本中添加了一些新的运算符:例如,mergeOrdered
已添加到Flux
和ParallelFlux
中。它允许您通过连续从所有数据源中挑选最小的可用值(由提供的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队列实现现在仅通过Queues.unboundedMultiproducer()
作为普通Queue
公开。此具体类现在是包私有的。
FluxDelaySequence
、FluxIndex
和FluxIndexFuseable
现在也是包私有的。
错误修复还包括一些对GC友好的修复,停止不必要地保留elastic
Scheduler
工作程序,以及在forceShutdown()
的情况下停止基于事件循环的处理器的后台任务。
自
3.1.4
以来的新增内容?请参阅3.1.5.RELEASE
和3.1.6.RELEASE
的完整发行说明。
Addons进行了一些修复和改进。
新引入的用于缓存的武断助手版本发布中包含一些本应为public
的包私有接口。这令人尴尬。:( 此问题现已修复。
引入了一种新的Repeat#create
工厂方法变体。它允许组合Predicate
和最大重复尝试次数。
注意
说到Repeat
及其姊妹Retry
,一些用户注意到默认行为与核心的简化repeat()
和retry()
变体略有不符:在没有进一步配置的情况下,助手限制为一次尝试,而核心版本会持续重复或重试。此外,这可以通过链接timeout
来更改,这会切换到无上限尝试行为(这已在其javadoc中进行了说明)。
我们正在考虑在3.2.0
中使此行为与核心保持一致。如果您有任何见解或反馈,请在此问题中发表评论。
自
0.7.3
以来的新增内容?请参阅0.7.4.RELEASE
和0.7.5.RELEASE
的完整发行说明。
Reactor-Netty也进行了一些修复,主要围绕池和连接生命周期。
新增功能包括对expect 100-continue的支持,以及更好的Reactor Context
处理,在相关时将其传递给Netty管道。
压缩支持也得到了改进,允许按响应激活压缩。这略微取代了已经存在的minCompressionThreshold
功能(尽管它并非100%可靠)。它基于一个BiPredicate
,例如,它可以仅对某些内容类型激活压缩。最小压缩阈值选项由content-length
谓词支持。
我们鼓励您获取这些新的工件,但是,如果您是Spring Boot用户,您会很高兴地了解到,只要您升级到即将发布的Spring Boot 2.0.0 GA版本,您就会获得相同的优势。 :)
与往常一样,欢迎提供反馈。请访问Gitter讨论此版本,或考虑在GitHub上提交问题。
同时,祝您响应式编程愉快!