Spring Cloud Stream教程(四)消费群体

虽然发布订阅模型能够轻松地经过共享主题链接应用程序,但经过建立给定应用程序的多个实例来扩展的能力一样重要。当这样作时,应用程序的不一样实例被放置在竞争的消费者关系中,其中只有一个实例预期处理给定消息。html

Spring Cloud Stream经过消费者组的概念来模拟此行为(Spring Cloud Stream消费者组与Kafka消费者组类似并受到启发。)每一个消费者绑定可使用spring.cloud.stream.bindings.<channelName>.group属性来指定组名称。对于下图所示的消费者,此属性将设置为spring.cloud.stream.bindings.<channelName>.group=hdfsWritespring.cloud.stream.bindings.<channelName>.group=averagespring

SCSt组
图7. Spring Cloud Stream消费者组

订阅给定目标的全部组都会收到已发布数据的副本,但每一个组中只有一个成员从该目的地接收给定的消息。默认状况下,当未指定组时,Spring Cloud Stream将应用程序分配给与全部其余消费者组发布 - 订阅关系的匿名独立单个成员消费者组。spa

耐久力

符合Spring Cloud Stream的有意义的应用模式,消费者群体订阅是持久的也就是说,绑定实现确保组预订是持久的,一旦已经建立了一个组的至少一个订阅,即便组中的全部应用程序都被中止,组也将接收消息。code

注意

匿名订阅本质上是不耐用的。对于某些binder实现(例如RabbitMQ),能够具备非持久组的订阅。htm

一般,当将应用绑定到给定目的地时,最好始终指定消费者组。在扩展Spring Cloud Stream应用程序时,必须为每一个输入绑定指定一个使用者组。这样能够防止应用程序的实例收到重复的消息(除非须要这种行为,这是不寻常的)。get

源码来源源码

相关文章
相关标签/搜索