消息队列-RabbitMQ(一)

147 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

@TOC

什么是 RabbitMQ

RabbitMQ是一个基于高级消息队列协议(AMQP)的开源的消息队列中间件

RabbitMQ 用途

1. 异步

1.1 为什么要异步

主要目的是减少请求响应时间,实现非核心流程异步化,提高系统响应性能 (1)串行方式: 在这里插入图片描述 (2)并行方式: 在这里插入图片描述 (3)消息队列方式: 在这里插入图片描述

2. 解耦

在这里插入图片描述

如上,订单系统在下订单的时候不用关心后续操作了,如果订单系统不能正常使用。也不影响库存系统,实现订单系统与库存系统的解耦。

3. 流量削峰

应用场景:秒杀活动,一般会因为流量过大,应用系统配置承载不了这股瞬间流量,导致系统直接挂掉,即传说中的“宕机”现象。为解决这个问题,我们会将那股巨大的流量拒在系统的上层,即将其转移至 MQ 而不直接涌入我们的接口,此时MQ起到了缓冲作用。

在这里插入图片描述

RabbitMQ 中的核心概念

  • 生产者(Producer):发送消息的应用。
  • 消费者(Consumer):接收消息的应用。
  • 交换器(Exchange):用来接收生产者发送的消息并将这些消息路由给服务器中的队列。
  • 队列(Queue):存储消息的缓存。
  • 绑定(Binding):就是将 交换器 和 消息队列连接起来
  • 信道(Channel):复用一条 TCP 连接 在这里插入图片描述