这个版本仍在开发中,尚未达到稳定状态。要使用最新稳定版,请使用 spring-cloud-stream 5.0.1 spring-doc.cadn.net.cn

绑定器 SPI

绑定器 SPI 包括多个接口、现成的实用程序类和发现策略,提供了一个可插拔机制,可以连接到外部中间件。spring-doc.cadn.net.cn

关键点是Binder接口,它是一种连接输入和输出与外部中间件的策略。下面的清单显示了Binder接口的定义:spring-doc.cadn.net.cn

public interface Binder<T, C extends ConsumerProperties, P extends ProducerProperties> {
    Binding<T> bindConsumer(String bindingName, String group, T inboundBindTarget, C consumerProperties);

    Binding<T> bindProducer(String bindingName, T outboundBindTarget, P producerProperties);
}

该接口是参数化的,提供了多个扩展点:spring-doc.cadn.net.cn

典型的绑定器实现包括以下内容:spring-doc.cadn.net.cn

  • 一个实现Binder接口的类;spring-doc.cadn.net.cn

  • 一个 Spring @Configuration 类,会创建一个类型为 Binder 的 bean,并附带中间件连接基础设施。spring-doc.cadn.net.cn

  • 一个在类路径上找到的0文件,包含一个或多个绑定器定义,如以下示例所示:spring-doc.cadn.net.cn

    kafka:\
    org.springframework.cloud.stream.binder.kafka.config.KafkaBinderConfiguration
就像前面提到的,绑定器抽象也是框架的扩展点之一。所以,如果你在前面的列表中找不到合适的绑定器,那么就可以在Spring Cloud Stream的基础上实现你自己的绑定器。在从头开始创建Spring Cloud Stream绑定器一文中,社区成员详细记录了(包括示例)实现自定义绑定器所需的一系列步骤。第Implementing Custom Binders节突出了这些步骤。