|
这个版本仍在开发中,尚未达到稳定状态。要使用最新稳定版,请使用 spring-cloud-stream 5.0.1 ! |
绑定器 SPI
绑定器 SPI 包括多个接口、现成的实用程序类和发现策略,提供了一个可插拔机制,可以连接到外部中间件。
关键点是Binder接口,它是一种连接输入和输出与外部中间件的策略。下面的清单显示了Binder接口的定义:
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);
}
该接口是参数化的,提供了多个扩展点:
-
输入和输出绑定目标。
-
扩展的消费者和生产者属性,允许特定的 Binder 实现添加可以以类型安全方式支持的补充属性。
典型的绑定器实现包括以下内容:
-
一个实现
Binder接口的类; -
一个 Spring
@Configuration类,会创建一个类型为Binder的 bean,并附带中间件连接基础设施。 -
一个在类路径上找到的0文件,包含一个或多个绑定器定义,如以下示例所示:
kafka:\ org.springframework.cloud.stream.binder.kafka.config.KafkaBinderConfiguration
就像前面提到的,绑定器抽象也是框架的扩展点之一。所以,如果你在前面的列表中找不到合适的绑定器,那么就可以在Spring Cloud Stream的基础上实现你自己的绑定器。在从头开始创建Spring Cloud Stream绑定器一文中,社区成员详细记录了(包括示例)实现自定义绑定器所需的一系列步骤。第Implementing Custom Binders节突出了这些步骤。 |