Reactor BISMUTH-SR7 已發布!

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

謹代表 Reactor 團隊全體成員,我很高興宣布 Reactor BISMUTH-SR7 發布列車現已推出。如同以往,我們建議使用 reactor-bom 材料清單

為了配合 Spring Boot 2,此發布列車帶來了核心、extras 和 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 佇列實作現在透過 Queues.unboundedMultiproducer() 作為純 Queue 公開。此具體類別現在為套件私有。

  • FluxDelaySequenceFluxIndexFluxIndexFuseable 現在也為套件私有。

錯誤修正還包括一些 GC 友善的修正,停止不必要地保留 elastic Scheduler 工作執行緒和事件迴圈型處理器的背景任務,以防 forceShutdown()

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,以及更好的 Reactor Context 處理,方法是在相關時將 Netty 管道傳遞給它。

壓縮支援也獲得了改進,允許每個回應啟用壓縮。這稍微取代了已經存在的 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 社群中所有即將到來的活動。

查看全部