使用JAVA CompletableFuture實現流水線化的並行處理,深度實踐總結

2022-07-25 15:01:07

大家好,又見面啦。

在專案開發中,後端服務對外提供API介面一般都會關注響應時長。但是某些情況下,由於業務規劃邏輯的原因,我們的介面可能會是一個聚合資訊處理類的處理邏輯,比如我們從多個不同的地方獲取資料,然後彙總處理為最終的結果再返回給呼叫方,這種情況下,往往會導致我們的介面響應特別的慢。

而如果我們想要動手進行優化的時候呢,就會涉及到序列處理改並行處理的問題。在JAVA中並行處理的能力支援已經相對完善,通過對CompletableFuture的合理利用,可以讓我們面對這種聚合類處理的場景會更加的得心應手。

好啦,話不多說,接下來就讓我們一起來品嚐下JAVA中組合式並行處理這道饕餮大餐吧。

前菜:先看個實際場景

在開始享用這頓大餐前,我們先來個前菜開開胃。

例如現在有這麼個需求:

需求描述
實現一個全網比價服務,比如可以從某寶、某東、某夕夕去獲取某個商品的價格、優惠金額,並計算出實際付款金額,最終返回價格最優的平臺與價格資訊。