先行一步
VMware 提供培訓和認證,助您快速前進。
瞭解更多代表整個 Reactor 團隊,我很高興地宣佈 Reactor BISMUTH-SR7
釋出版本現已可用。一如既往,我們建議使用 reactor-bom
物料清單 (Bill Of Material)。
及時配合 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 Queue 實現現在僅透過 Queues.unboundedMultiproducer()
以普通 Queue
的形式暴露。這個具體類現在是包私有的。
FluxDelaySequence
, FluxIndex
和 FluxIndexFuseable
現在也是包私有的。
錯誤修復還包括一些對 GC 友好的修復,在 forceShutdown()
的情況下停止不必要地保留 elastic
Scheduler
workers 和基於事件迴圈的 Processors 的後臺任務。
自
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
中將此行為與核心對齊。如果您有任何見解或反饋,請在 issue 中發表評論。
自
0.7.3
以來有什麼新變化?請參閱0.7.4.RELEASE
和0.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。
同時,祝您反應式程式設計愉快!