温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spring Cloud Stream怎么使用

发布时间:2021-12-07 14:26:26 来源:亿速云 阅读:130 作者:iii 栏目:大数据

这篇文章主要讲解了“Spring Cloud Stream怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud Stream怎么使用”吧!

Spring Cloud Stream是一个构建消息驱动的微服务框架。它构建在Spring Boot之上用以创建工业级的应用程序,并且通过Spring Integration提供了和消息代理的连接。Spring Cloud Stream为一些供应商的消息中间件产品提供了个性化的自动化配置实现(目前仅支持RabbitMQ和Kafka),同时引入了发布订阅、消费组和分区的语义概念。

创建工程

首先我们创建一个普通的Spring Boot工程,名为stream-hello,然后添加如下依赖:

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

spring-cloud-starter-stream-rabbit依赖是Spring Cloud Stream对RabbitMQ的封装,这里边也包含了对RabbitMQ的自动化配置,比如连接的RabbitMQ的默认地址就是localhost,默认端口就是5672,默认用户名是guest,默认密码也是guest,由于我们的RabbitMQ都是采用了默认配置,所以这里的配置可以不去修改,一样也可以运行。

创建接收器

然后创建一个名为SinkReceiver的类,用来接收RabbitMQ发送来的消息,如下:

@EnableBinding(Sink.class)
public class SinkReceiver {
    private static Logger logger = LoggerFactory.getLogger(StreamHelloApplication.class);
    @StreamListener(Sink.INPUT)
    public void receive(Object playload) {
        logger.info("Received:"+playload);
    }
}

这里我们首先使用了@EnableBinding注解实现对消息通道的绑定,我们在该注解中还传入了一个参数Sink.class,Sink是一个接口,该接口是Spring Cloud Stream中默认实现的对输入消息通道绑定的定义。然后我们在SinkReceiver类中定义了receive方法,并在该方法上添加了@StreamListener注解,该注解表示该方法为消息中间件上数据流的事件监听器,Sink.INPUT参数表示这是input消息通道上的监听处理器。

测试

Ok,做好上面的操作之后,我们就可以启动我们的项目了,在项目的启动日志中,我们可以看到如下内容:

Spring Cloud Stream怎么使用  

这个表示我们的工程已经通过guest用户创建了一个指向RabbitMQ的连接。此时,在浏览器中打开RabbitMQ的管理页面,一样也可以看到连接,如下:

Spring Cloud Stream怎么使用  

图中红线部分就是我们新建的队列,点击该队列,找到Publish message选项,我们可以从这里给我们的项目发送一条消息,如下:

Spring Cloud Stream怎么使用  

此时我们可以在项目的控制台中看到消息已经收到了,如下:

Spring Cloud Stream怎么使用  

只是消息没有序列化而已。

感谢各位的阅读,以上就是“Spring Cloud Stream怎么使用”的内容了,经过本文的学习后,相信大家对Spring Cloud Stream怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI