springcloud stream rabbit 对消息中间件进一步封装

为了实现服务之间的解耦,以及动态的切换topic的功能,springcloud提供了stream对消息中间件的封装,不然rabbitMQ以及Kafka
在这里插入图片描述
1.从springcloud-stream的使用来看,引入启动依赖
在这里插入图片描述
2.定义接口来使用注解@input(“streamName”) 返回SubScribableChannel对象以及@output(“SteamName”) 返回MessageChannel对象
在这里插入图片描述
3.构建组件绑定stream接口
使用注解@Conponent @EnableBinding(StreamClient.class)
在这里插入图片描述
4.controller层通过@AutoWired注入stream接口,使用output()方法进行发送消息
在这里插入图片描述
5.消费端接收消息,通过@StreamListener(“exchangeName”)接收消息,@EnableBinding(“接口的名字.class”)来实现对接口的绑定
在这里插入图片描述
总结一下springcloud stream的使用,首先是起步依赖,然后通过定义接口定义input以及output注解的方法,消费端需要通过注解@StreamListener来接收消息,@EnableBinding 来对需要监听的stream进行定义。
但是有时候业务需要高可用就考虑服务进行集群部署,而消息只希望其中一个或者指定的一个进行消费这时候就需要到yml里面配置stream.bindings.交换机名字.group 指定哪些服务可以共同的消费指定的stream队列,只会让集群里面的其中一个进行消费
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_30947631/article/details/85053198