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控制台查看队列生成情况
http://localhost:15672/#/queues