19、Spring Cloud ——Spring Cloud Bus之RabbitMQ介绍

本文介绍了Spring Cloud Bus作为微服务间通信的消息总线,强调了其在解耦系统中的作用。文章详细讲解了如何使用RabbitMQ作为消息代理,并通过Docker简化安装过程。接着,展示了如何配置和使用RabbitMQ进行消息发送和接收,包括创建消息生产者和消费者,并通过单元测试验证其功能。

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

为什么需要使用消息中间件?
我们把Spring Cloud Bus称为消息总线,在使用微服务的时候,我们不可避免的需要在服务之间来做调用,调用的方式有很多种,之前用的Feign、RestTemplate只是其中之一而已,一般来说使用Feign或者RestTemplate来调用一个方法,调用完之后,很短时间内就能知道调用的结果。但是有一些调用我并不想马上就知道结果,甚至说没办法马上就知道结果,比如说发短信验证码,已发送,60秒之内没收到验证码再重新发送,它不告诉你一定就发送成功了,是因为它自己也不知道有没有发送成功。只是说发送的方法已经调用了,至于发送成功了还是失败了,它也不知道。60秒之后没收到,再重试就行了。像这种请求我们就可以使用消息中间件来进行通信。

消息中间件的作用
比如说我要发送一封邮件,我可以先把邮件的要发送的内容以及相关信息,先丢到消息中间件上面去,然后有一个微服务它就不同的去消费这个消息中间件上面的消息,它从这个消息中间件目前最新的信息,看一下有没有邮件让它发,有的话就发送,没有的话就继续等待。然后其他的微服务,它想发邮件,都只需要给这个消息中间件仍一条消息就行了,剩下的事情就不用管了,这可以实现微服务之间的解耦。

Spring Cloud Bus也是微服务架构系统中的必备组件。Spring Cloud Bus可以将分布式系统的节点与轻量级消息代理链接,然后可以实现广播状态更改(例如配置更改)或广播其他管理指令。Spring Cloud Bus就像一个分布式执行器,用于扩展的Spring Boot应用程序,但也可以用作应用程序之间的通信通道。那么这里就涉及到了消息代理,目前流行的消息代理中间件有不少,Spring Cloud Bus支持RabbitMQ和Kafka。现在我们来看看RabbitMQ。

RabbitMQ的安装
RabbitMQ很多人在第一次用的时候,会普遍遇到一个问题,就是安装的问题,因为这个是基于Erlang语言编写的,Erlang的话还要安装它的开发环境(类似于jdk),Erlang环境的话又有一个很麻烦的版本问题,所以很多人经常在这个地方安装失败。这里我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值