
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。您能够使用相同的代码轻松使用不一样类型的中间件:在构建时只包含不一样的绑定器。对于更复杂的用例,您还能够在应用程序中打包多个绑定器,并在运行时选择绑定器,甚至是否为不一样的通道使用不一样的绑定器。