1. 什么是SpringCloudStream?
SpringCloudStream是SpringCloud中对于消息中间件操作的封装包,目前支持的消息中间件有RabbitMQ、Kafka,以下是SpringCloudStream的模型图。
从上图可以发现消息的发送由output接口提供,消息的接收由input输入。应用程序与消息中间件通过Binder进行链接。
2. 为什么要使用SpringCloudStream?
SpringCloudStream是对消息中间件操作的再次封装,简化了消息中间件的细节,它可以使得我们对消息中间间无感知,使我们能够更加专注业务代码的开发。
3. 如何使用SpringCloudStream?
单个实例
3.1 在工程中引入相关Maven依赖
<!--springcloud stream操作rabbitmq所需依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
3.2 编写相关配置信息
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
cloud:
stream:
bindings:
input:
destination: myMsg
output:
destination: myMsg
3.2 编写一个StreamClient接口,并在里边声明消息输入、输出方法。
package com.qingyun.order.server.message;
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 StreamClient {
static String INPUT="input";
static String OUTPUT="output";
@Input(StreamClient