事件驅動
事件驅動系統反映了現代業務的實際運作方式——每天都有成千上萬的小變化發生。Spring 處理事件並使開發人員能夠圍繞事件構建應用程式的能力,意味著您的應用程式將與您的業務保持同步。Spring 提供了多種事件驅動選項供您選擇,從整合和流媒體一直到雲函式和資料流。
事件驅動的微服務
當與微服務結合時,事件流開闢了激動人心的機會——事件驅動架構就是一個常見的例子。Spring 簡化了事件的生產、處理和消費,提供了幾個有用的抽象。
流資料
流資料表示事件的持續流動。一個例子可能是股票行情自動收錄器。每當股票價格變化時,就會建立一個新事件。這被稱為“流資料”,因為有數千個此類事件導致持續的資料流。
整合
任何事件驅動系統的基石都是訊息處理。連線到訊息平臺,路由訊息,轉換訊息,處理訊息。使用 Spring,您可以快速解決這些整合挑戰。

Spring Cloud Stream
Spring Cloud Stream 提高了您在使用 Apache Kafka、RabbitMQ、Azure Event Hub 等時的生產力,提供了三個關鍵抽象來簡化您的程式碼。“繫結器(Binders)”與外部訊息系統整合。“繫結(Bindings)”彌合了訊息系統和您的程式碼之間的差距。“訊息(Messages)”提供了您的程式碼用於傳送和接收資料的結構。
Spring Cloud Stream 還支援配置、內容轉換、錯誤處理、配置管理、消費者組、分割槽、監控和健康檢查。
Spring [Cloud] Stream 和 Spring 解決方案幫助我們為命令式和反應式需求提供一個有凝聚力的解決方案。
ANIL GURSEL,PayPal 軟體工程師
Spring Cloud Function
Spring Cloud Function 使您能夠編寫一次函式並在任何地方執行它們(AWS、Azure 等),同時繼續使用所有熟悉且全面的 Spring API。您可以將多個函式連結在一起以建立新功能。對多個輸入和輸出的支援使合併、連線和其他更高階的用例觸手可及。
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Beanpublic Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
}
Spring Cloud Data Flow
Spring Cloud Data Flow 為開發人員提供了各種工具和自動化功能,用於處理各種資料來源和目標。Spring Cloud Data Flow 幫助您開發、部署、管理和擴充套件跨多個雲原生平臺的高吞吐量流資料管道。它還具有豐富的使用者介面,用於構建和監控您的應用程式。
Spring Cloud Kafka Streams
Spring Cloud Stream 提供了第二個更具體的繫結器,專門用於使用 Kafka Streams。這個特殊的繫結器仍然專注於開發人員生產力,但增加了對 Kafka 特定功能(如 KStream、KTable 和 GlobalKTable)的支援。與常規 Spring Cloud Stream 一樣,繫結器還負責連線到 Kafka,以及建立、配置和維護流和主題。
Spring AMQP 和 Spring for Apache Kafka
透過 Spring AMQP 和 Spring for Apache Kafka 專案,您可以將核心 Spring 概念應用於基於 Kafka 或 RabbitMQ 的訊息解決方案的開發。
兩者都包含“模板”作為高階訊息處理抽象,並支援帶有“監聽器容器”的訊息驅動 POJO。
Spring Integration
應用程式整合是每個企業面臨的挑戰。Spring Integration 透過擴充套件流行的 Spring 程式設計模型以包含所有最常見的整合模式來減輕這一負擔。它為訊息平臺、通訊協議、檔案系統和服務提供商提供了現成的聯結器,以及訊息路由、資料轉換和過濾器等常見模式的實現。