SpringCloud 反應(yīng)式編程支持

2023-11-26 16:22 更新

Spring Cloud Stream還支持使用反應(yīng)式API,將傳入和傳出的數(shù)據(jù)作為連續(xù)的數(shù)據(jù)流進(jìn)行處理。可通過(guò)spring-cloud-stream-reactive獲得對(duì)反應(yīng)式API的支持,需要將其顯式添加到您的項(xiàng)目中。

具有響應(yīng)式API的編程模型是聲明性的。您可以使用描述從入站數(shù)據(jù)流到出站數(shù)據(jù)流的功能轉(zhuǎn)換的運(yùn)算符,而不是指定每個(gè)消息的處理方式。

目前Spring Cloud Stream僅支持Reactor API。將來(lái),我們打算支持基于反應(yīng)式流的更通用的模型。

反應(yīng)式編程模型還使用@StreamListener注釋來(lái)設(shè)置反應(yīng)式處理程序。區(qū)別在于:

  • @StreamListener批注不能指定輸入或輸出,因?yàn)樗鼈冏鳛閰?shù)提供并從方法返回值。
  • 該方法的參數(shù)必須用@Input@Output注釋,分別指示傳入和傳出數(shù)據(jù)流連接到哪個(gè)輸入或輸出。
  • 該方法的返回值(如果有)用@Output注釋,指示應(yīng)該將數(shù)據(jù)發(fā)送到的輸入。
響應(yīng)式編程支持需要Java 1.8。
從Spring Cloud Stream 1.1.1起(從發(fā)行版Brooklyn.SR2開(kāi)始),反應(yīng)式編程支持要求使用Reactor 3.0.4.RELEASE及更高版本。不支持更早的Reactor版本(包括3.0.1.RELEASE,3.0.2.RELEASE和3.0.3.RELEASE)。spring-cloud-stream-reactive可傳遞地檢索正確的版本,但是項(xiàng)目結(jié)構(gòu)可以將io.projectreactor:reactor-core的版本管理為早期版本,尤其是在使用Maven時(shí)。使用Spring Initializr和Spring Boot 1.x生成的項(xiàng)目就是這種情況,該項(xiàng)目將Reactor版本覆蓋為2.0.8.RELEASE。在這種情況下,必須確保發(fā)布了正確版本的工件。您可以通過(guò)在項(xiàng)目中添加對(duì)版本為3.0.4.RELEASE或更高版本的io.projectreactor:reactor-core的直接依賴來(lái)實(shí)現(xiàn)。

 當(dāng)前,術(shù)語(yǔ)“ 反應(yīng)式 的使用是指正在使用的反應(yīng)式API,而不是指執(zhí)行模型是反應(yīng)式的(也就是說(shuō),綁定的端點(diǎn)仍然使用“推”式而非“拉式”模型)。盡管通過(guò)使用Reactor提供了一些反壓支持,但在將來(lái)的發(fā)行版中,我們確實(shí)打算通過(guò)對(duì)連接的中間件使用本機(jī)反應(yīng)性客戶端來(lái)完全支持反應(yīng)性管道。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)