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 社群所有即將舉行的活動。

檢視全部