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
相关文章
|
6月前
|
消息中间件 存储 负载均衡
|
6月前
|
消息中间件 存储 缓存
rabbitMQ
rabbitMQ
46 0
|
6月前
|
消息中间件 存储 中间件
精通 RabbitMQ 系列 01
精通 RabbitMQ 系列 01
61 0
|
6月前
|
消息中间件 存储 负载均衡
什么是RabbitMQ?
RabbitMQ是一个开源的消息代理软件,用于在分布式系统中传递消息。它实现了高级消息队列协议(AMQP),提供了一种可靠的、强大的、灵活的消息传递机制,使得不同应用程序或组件之间可以轻松地进行通信。
66 0
|
6月前
|
消息中间件 存储 自然语言处理
|
消息中间件 存储 缓存
RabbitMQ到底为什么要使用它?
在多服务体系架构中,必然存在着多个服务之间的调用关系,当用户提交了订单,订单服务会调用支付服务执行用户的金钱操作,执行完毕之后紧接着调用商品服务对商家的商品信息(库存、成交量、收入等)进行更新,执行完毕之后又调用物流服务
|
消息中间件 存储 缓存
初识RabbitMQ
初识RabbitMQ
110 1
|
消息中间件 存储
RabbitMq
RabbitMq
128 0
|
消息中间件
1. 什么是 RabbitMQ?
1. 什么是 RabbitMQ?
63 0
|
消息中间件 存储 Java
RabbitMq使用
RabbitMq使用
146 0