此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 spring-cloud-stream 4.3.0! |
Binder 抽象
Spring Cloud Stream 为 Kafka 和 Rabbit MQ 提供了 Binder 实现。 该框架还包括一个测试绑定器,用于将应用程序集成测试为 spring-cloud-stream 应用程序。有关详细信息,请参阅 [测试] 部分。
Binder 抽象也是框架的扩展点之一,这意味着您可以在 Spring Cloud Stream 之上实现自己的 binder。
在如何从头开始创建 Spring Cloud Stream Binder 发布社区成员文档中
详细介绍,通过示例,实现自定义活页夹所需的一组步骤。
这些步骤也在Implementing Custom Binders
部分。
Spring Cloud Stream 使用 Spring Boot 进行配置,而 Binder 抽象使 Spring Cloud Stream 应用程序能够灵活地连接到中间件。
例如,部署者可以在运行时动态选择外部目标(例如 Kafka 主题或 RabbitMQ 交换)和输入之间的映射
以及消息处理程序的输出(例如函数的输入参数及其返回参数)。
此类配置可以通过外部配置属性提供,并以 Spring Boot 支持的任何形式(包括应用程序参数、环境变量和application.yml
或application.properties
文件)。
在 Spring Cloud Stream 简介部分的 sink 示例中,将spring.cloud.stream.bindings.input.destination
application 属性设置为raw-sensor-data
导致它从raw-sensor-data
Kafka 主题或从绑定到raw-sensor-data
RabbitMQ 交换。
Spring Cloud Stream 会自动检测并使用在类路径上找到的绑定器。 您可以使用相同的代码使用不同类型的中间件。 为此,请在生成时包含不同的活页夹。 对于更复杂的用例,您还可以将多个绑定器与应用程序打包在一起,并让它在运行时选择绑定器(甚至是否为不同的绑定使用不同的绑定器)。