1、引入依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>

2、yml文件中增加topic配置

spring:
cloud:
stream:
bindings:
# 分组方式,每个消息只有一个consumer消费
groupStreamTopic-consumer:
destination: groupStreamTopic
group: Group-A
groupStreamTopic-producer:
destination: groupStreamTopic

3、增加topic接口

import org.springframework.cloud.stream.annotation.Input;
import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.SubscribableChannel;

public interface GroupTopic {

String INPUT = "groupStreamTopic-consumer";

String OUTPUT = "groupStreamTopic-producer";

// input指消费者 output是生产者
@Input(INPUT)
SubscribableChannel input();

@Output(OUTPUT)
MessageChannel output();

}

4、增加消费者类

import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
@EnableBinding(value = {
GroupTopic.class
})
public class StreamConsumer {
@StreamListener(GroupTopic.INPUT)
public void consumerGroupMessage(Object payload) {
log.info("group topic,收到消息:" + payload);
}
}

5、在生产者中发送消息

@Autowired
private GroupTopic groupTopicProducer;
……
……
groupTopicProducer.output().send(MessageBuilder.withPayload(body).build());

6、在rabbitmq控制台查看队列生成情况