绑定器抽象

Spring Cloud Stream 提供了针对 KafkaRabbit MQ 的绑定器实现。该框架还包含一个测试绑定器,用于集成测试您的 Spring Cloud Stream 应用程序。有关更多详细信息,请参阅 [测试] 部分。

绑定器抽象也是该框架的扩展点之一,这意味着您可以基于 Spring Cloud Stream 实现自己的绑定器。在 如何从头开始创建 Spring Cloud Stream 绑定器 文章中,社区成员详细记录了实现自定义绑定器所需的一组步骤,并提供了一个示例。这些步骤也在 实现自定义绑定器 部分中进行了重点介绍。

Spring Cloud Stream 使用 Spring Boot 进行配置,并且绑定器抽象使得 Spring Cloud Stream 应用程序能够灵活地连接到中间件。例如,部署者可以在运行时动态选择外部目标(例如 Kafka 主题或 RabbitMQ 交换机)与消息处理程序的输入和输出(例如函数的输入参数及其返回值)之间的映射。此类配置可以通过外部配置属性提供,并采用 Spring Boot 支持的任何形式(包括应用程序参数、环境变量以及 application.ymlapplication.properties 文件)。在 介绍 Spring Cloud Stream 部分的 sink 示例中,将 spring.cloud.stream.bindings.input.destination 应用程序属性设置为 raw-sensor-data 会导致它从 raw-sensor-data Kafka 主题或绑定到 raw-sensor-data RabbitMQ 交换机的队列中读取数据。

Spring Cloud Stream 自动检测并在类路径中使用找到的绑定器。您可以使用相同代码的不同类型的中间件。为此,请在构建时包含不同的绑定器。对于更复杂的用例,您还可以将多个绑定器与您的应用程序打包在一起,并使其在运行时选择绑定器(甚至可以选择是否对不同的绑定使用不同的绑定器)。