2. 为什么要使用 RabbitMQ?

简介: 2. 为什么要使用 RabbitMQ?

在项目中有异步、解耦、销峰的作用:

异步:当前端获取用户订单信息的时候,会请求后端的订单创建接口。这个订单创建接口并不直接请求订单服务,而是先生成一个唯一订单编号,再组装一个订单消息发送给 RabbitMQ,然后返回唯一订单编号给前端。前端根据唯一订单编号轮询地访问订单状态接口获取订单状态,如果订单创建成功,则拉起支付界面引导用户付费。

解耦:当用户下单成功时会给用户发送一个成功下单的消息,在没有用的消息队列的时候,我们是直接调用给用户发送短信的这个接口,如果说这个接口出现了问题或者是调用这个接口的运营商出现了问题,这时候的话我们的系统就会被阻塞到,一旦下单成功的短信发不出去了,那这个订单系统就是不完整的。所以这里用 RabbitMQ 消息队列来进行解耦来解决这种问题。

销峰:用消息队列还有削锋的作用,利用消息队列先进先出的特点,当项目中出现秒杀的情况时,并发量比较大,如果一条一条处理的话,无论是系统还是运营商那边,压力都是扛不住的,不利于系统的操作,所以这时候用消息队列将大量涌进来的订单先积压,然后按系统能力来逐个解决。

RabbitMQ 消息队列参考一文:

面试题:Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点 (qq.com)

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
4月前
|
消息中间件 SQL Java
Rabbitmq
Rabbitmq
66 1
|
2月前
|
消息中间件 存储 网络协议
一文带大家快速掌握RabbitMQ!(一)
一文带大家快速掌握RabbitMQ!
|
3月前
|
消息中间件 存储 Java
rabbitmq(一)
rabbitmq(一)
|
4月前
|
消息中间件 存储 网络协议
RabbitMQ的使用
这篇文章详细介绍了RabbitMQ的消息中间件概念、核心组件、通过Docker的安装方法和基本使用步骤,并展示了如何在Spring Boot中整合RabbitMQ,包括依赖配置、消息的发送和接收示例。
RabbitMQ的使用
|
6月前
|
消息中间件 网络协议 API
rabbitmq
rabbitmq
54 2
|
7月前
|
消息中间件 存储 中间件
精通 RabbitMQ 系列 01
精通 RabbitMQ 系列 01
67 0
|
7月前
|
消息中间件 存储 网络协议
精通 RabbitMQ 系列 02
精通 RabbitMQ 系列 02
55 0
|
消息中间件 存储 数据库
RabbitMQ特殊应用
RabbitMQ特殊应用
76 0
|
消息中间件 存储 Java
RabbitMq使用
RabbitMq使用
149 0
|
消息中间件 Java
RabbitMQ(2)
RabbitMQ(2)