Spring Cloud Stream

本文介绍了如何使用Spring Cloud Stream简化基于消息中间件如RabbitMQ的通信过程。通过配置即可实现消息的生产和消费,适用于只需一对多消息传递场景。文中详细展示了搭建生产者和消费者所需的依赖、配置及代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

为什么会用Spring Cloud Stream去做基于消息通信呢???

好处:虽说Spring Boot对Kafka、RabbitMQ、RocketMQ等支持的比较好,但是可能还是需要按照对应规则去写对应代码。而Spring Cloud Stream可以做到基于配置提供通信。

缺点:Spring Cloud Stream只支持topic-subsriber订阅模式,但是对于我目前的系统来说,已经满足了。我的需求:只要一个服务提供消息,另一个服务能够及时处理就行。

1、生产消息的中间服务

1.1、基础依赖

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

1.2、相关配置以及代码

1)定义消息通道

173531_yDkF_2472104.png

2)提供一个发送的rest

173830_1YrU_2472104.png

3)yml配置

基础的消息中间件信息

173959_ktRw_2472104.png

处理哪些通道信息(我上面只展示了一个通道)

174050_IDqp_2472104.png

4)发送

174406_beHe_2472104.png

2、1、接收消息的服务

2.1、基础依赖

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

2.2 、相关配置及代码

1)接收消息的代码

174750_zTNd_2472104.png

2)yml配置

基础的消息中间件信息

173959_ktRw_2472104.png

收具体某个通道的消息

175017_Y88O_2472104.png

 

注意:

1、如果接收相同渠道的服务节点有多个,那么会自动进行负载,一般是采用轮询的策略

2、接收方yml配置中的分组名,是每个通道配置对应的分组名

3、我的系统采用的消息中间件是RabbitMQ,支持很好的等价替换其他中间件

4、默认会提供重试机制,如果接收消息出现异常,会进行重试

转载于:https://my.oschina.net/u/2472104/blog/1550462

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值