概述
消息队列(Message Queue),是分布式系统中重要的组件,是一种进程间通信或者是同一进程的不同线程的通信方式。和 http 同步协议不同的是,消息队列是一种异步的通信协议,不需要立即获得结果。
消息队列的使用场景
- 异步处理
- 流量控制
- 应用解耦
应用解耦
消息队列的一个作用就是实现系统应用之间的解耦。举例一下电商系统的中的订单系统。
当创建一个订单时:
- 发起支付
- 扣减库存
- 发消息告知用户
- 更新统计数据
这些订单下游的系统都需要实时获得订单数据,随着业务量的增大和业务的变更,有一段时间不需要发消息给客户,或者需要添加功能,每次都需要不断的调式订单系统和下游系统。
引入消息队列后,订单服务在创建订单时发送一条信息到消息队列主题 Order 中,所有的下游都订阅主题Order,这样无论增加、减少下游系统还是下游系统的功能如何变化,订单服务都不需要做更改了,实现了订单服务和下游服务的解耦。
异步处理
异步处理是将很多串行进行的步骤转成异步处理,还是已订单系统为例,下单订单需要创建订单和锁定库存,确定本次请求后马上给用户返回响应,然后把后续请求的数据的都在消息队列,由消息队列异步处理。

这样把五个步骤减少为两个步骤,假设每个步骤处理时间需要500ms,在不考虑网络延迟的情况下:
串行处理: 500 * 5 = 2500ms
并行处理:500 * 2 = 1000ms

本文简述了消息队列在电商系统中的使用场景,如应用解耦、异步处理和流量控制,并详细介绍了RabbitMQ的五种工作模式:简单、工作、发布订阅、路由和主题模式,揭示了其在系统性能优化和解耦中的重要作用。
最低0.47元/天 解锁文章
1164

被折叠的 条评论
为什么被折叠?



