|
该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 spring-cloud-stream 5.0.0! |
结合剂抽象
Spring Cloud Stream 提供了一个 Binder 抽象,用于通过外部中间件连接物理目的地。 本节提供关于Binder SPI背后主要概念、其主要组件及实现具体细节的信息。
生产者与消费者
下图展示了生产者与消费者的一般关系:
图1。生产者与消费者
生产者是将消息发送到绑定目的地的任何组件。
绑定目的地可以绑定到外部消息代理,使用粘结 剂为该经纪人实施。
当调用bindProducer()方法中,第一个参数是代理内目的地的名称,第二个参数是本地目的地实例,生产者向其发送消息,第三个参数包含属性(如分区键表达式),用于为该绑定目的地创建的适配器中。
消费者是接收来自绑定目的地消息的任何组件。
与生产者类似,消费者也可以绑定到外部消息代理。
当调用bindConsumer()方法中,第一个参数是目的名称,第二个参数则是逻辑消费者组的名称。
每个由给定目的地的消费者绑定表示的组都会收到生产者发送到该目的地的每条消息的副本(即遵循正常的发布-订阅语义)。
如果有多个以相同组名绑定的消费者实例,那么消息会在这些消费实例间负载均衡,使得每个生产者发送的消息只被组内的单个消费者实例消耗(即遵循正常的队列语义)。