Spring Cloud Stream提供了一些簡化了消息驅動的微服務應用程序編寫的抽象和原語。本節概述瞭如下內容:html
Spring Cloud Stream的應用模型java
Binder抽象git
持續的發佈 - 訂閱支持github
消費者羣體支持spring
分區支持app
一個可插拔的Binder API微服務
一個Spring Cloud Stream應用程序由一箇中間件中立的核心組成。該應用程序經過Spring Cloud Stream注入到其中的輸入和輸出通道與外界進行通訊。渠道經過中間件特定的Binder實現鏈接到外部經紀人。工具
Spring Cloud Stream應用程序能夠在獨立模式下從IDE運行進行測試。要在生產中運行Spring Cloud Stream應用程序,您能夠使用爲Maven或Gradle提供的標準Spring Boot工具建立可執行文件(或「胖」)JAR。測試
Spring Cloud Stream爲Kafka和Rabbit MQ提供Binder實現。Spring Cloud Stream還包括一個TestSupportBinder,它保留了一個未修改的通道,以便測試能夠直接和可靠地與通道進行交互。您能夠使用可擴展API編寫本身的Binder。spa
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。您能夠使用相同的代碼輕鬆使用不一樣類型的中間件:在構建時只包含不一樣的綁定器。對於更復雜的用例,您還能夠在應用程序中打包多個綁定器,並在運行時選擇綁定器,甚至是否爲不一樣的通道使用不一樣的綁定器。