Spring Cloud Stream 其实是发布订阅模型,如果一个topic有多个订阅实例 ,消息就会被这些消息消费者接收到,这样就会带来一个问题,那就是消息的重复消费,这种问题在很多业务场景下是不允许的,我们这时候需要给消息消费者加个分组信息,这样多个消费者实例在一个组下面就不会再出现消息重复消费。
当前Spring Cloud Rabbit的版本为2.1.2
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
其在application.yml文件中的配置内容如下:
spring:
application:
name: spring-cloud-stream-consumer
cloud:
stream:
# 绑定mq信息,这里我们绑定的是rabbitmq
binders:
# 给这个binder起个名字,取名为“rabbit”
rabbit:
# mq的类型,如果是rabbitmq,则是rabbit;如果是kafka的话就是kafka
type: rabbit
# 配置mq的信息
environment:
spring:
rabbitmq:
host: localhost