1. 程式人生 > >Spring Cloud Stream教程(二)主要概念

Spring Cloud Stream教程(二)主要概念

test 消息驅動 外部 環境 sts port 生產 屬性 app

Spring Cloud Stream提供了一些簡化了消息驅動的微服務應用程序編寫的抽象和原語。本節概述了以下內容:

Spring Cloud Stream的應用模型

Binder抽象

持續的發布 - 訂閱支持

消費者群體支持

分區支持

一個可插拔的Binder API

應用模型

一個Spring Cloud Stream應用程序由一個中間件中立的核心組成。該應用程序通過Spring Cloud Stream註入到其中的輸入和輸出通道與外界進行通信。渠道通過中間件特定的Binder實現連接到外部經紀人。

SCSt與粘合劑
圖5. Spring Cloud Stream應用
胖JAR

Spring Cloud Stream應用程序可以在獨立模式下從IDE運行進行測試。要在生產中運行Spring Cloud Stream應用程序,您可以使用為Maven或Gradle提供的標準Spring Boot工具創建可執行文件(或“胖”)JAR。

Binder抽象

Spring Cloud Stream為Kafka和Rabbit MQ提供Binder實現。Spring Cloud Stream還包括一個TestSupportBinder,它保留了一個未修改的通道,以便測試可以直接和可靠地與通道進行交互。您可以使用可擴展API編寫自己的Binder。

Spring Cloud Stream使用Spring Boot進行配置,Binder抽象使得Spring Cloud Stream應用程序可以靈活地連接到中間件。例如,部署者可以在運行時動態地選擇通道連接的目的地(例如,Kafka主題或RabbitMQ交換)。可以通過外部配置屬性和Spring Boot(包括應用程序參數,環境變量和application.yml或application.properties文件)支持的任何形式提供此類配置。在引入Spring Cloud Stream部分的接收器示例中,將應用程序屬性spring.cloud.stream.bindings.input.destination設置為raw-sensor-data將使其從raw-sensor-data Kafka主題或從綁定到raw-sensor-data RabbitMQ交換。

Spring Cloud Stream自動檢測並使用類路徑中找到的binder。您可以使用相同的代碼輕松使用不同類型的中間件:在構建時只包含不同的綁定器。對於更復雜的用例,您還可以在應用程序中打包多個綁定器,並在運行時選擇綁定器,甚至是否為不同的通道使用不同的綁定器。

Spring Cloud Stream教程(二)主要概念