此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 spring-cloud-stream 4.3.0spring-doc.cadn.net.cn

Binder 抽象

Spring Cloud Stream 为 KafkaRabbit MQ 提供了 Binder 实现。 该框架还包括一个测试绑定器,用于将应用程序集成测试为 spring-cloud-stream 应用程序。有关详细信息,请参阅 [测试] 部分。spring-doc.cadn.net.cn

Binder 抽象也是框架的扩展点之一,这意味着您可以在 Spring Cloud Stream 之上实现自己的 binder。 在如何从头开始创建 Spring Cloud Stream Binder 发布社区成员文档中 详细介绍,通过示例,实现自定义活页夹所需的一组步骤。 这些步骤也在Implementing Custom Binders部分。spring-doc.cadn.net.cn

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

Spring Cloud Stream 会自动检测并使用在类路径上找到的绑定器。 您可以使用相同的代码使用不同类型的中间件。 为此,请在生成时包含不同的活页夹。 对于更复杂的用例,您还可以将多个绑定器与应用程序打包在一起,并让它在运行时选择绑定器(甚至是否为不同的绑定使用不同的绑定器)。spring-doc.cadn.net.cn