RabbitMQ概述

Rabbit是一个公司名.MQ也就是消息队列的意思,RabbitMQ是Rabbit企业下一个消息队列产品。

RabbitMQ是一个实现了AMQP的消息队列服务,是当前主流的消息中间件。

什么是MQ

MQ(message queue),本身是个队列,FIFO先入先出,只不过队列中存放的内容是消息而已,消息可以非常简单,比如只包含文本字符串,JSON等,也可以很复杂,比如内嵌对象。

MQ多用于分布式系统之间进行通信.

系统之间的调用通常有两种方式:

1.同步通信

直接调用对方的服务,数据从一端发出后立即就可以达到另一端

2.异步通信

数据从一端发出后,先进入一个容器进行临时存储,当达到某种条件后,再由这个容器发送给另一端,容器的一个具体实现就是MQ。

MQ的作用

MQ的主要工作是接收并转发消息,在不同的应用场景可以展现不同的作用。
可以把MQ想象成⼀个仓库. 采购部⻔进货之后, 把零件放进仓库⾥, ⽣产部⻔从仓库中取出零件, 并加⼯成产品. MQ和仓库的区别是, 仓库⾥放的是物品, MQ⾥放的是消息, 仓库负责存储物品,并转发物品,MQ负责存储和转发消息

1.异步解耦:
在业务流程中, ⼀些操作可能⾮常耗时, 但并不需要即时返回结果. 可以借助MQ把这些操
作异步化, ⽐如 ⽤⼾注册后发送注册短信或邮件通知, 可以作为异步任务处理, ⽽不必等待这些操作完成后才告知⽤⼾注册成功。
2.流量削峰:
在访问量剧增的情况下, 应⽤仍然需要继续发挥作⽤, 但是这样的突发流量并不常⻅. 如果
以能处理这类峰值为标准⽽投⼊资源,⽆疑是巨⼤的浪费. 使⽤MQ能够使关键组件⽀撑突发访问压⼒, 不会因为突发流量⽽崩溃. ⽐如秒杀或者促销活动, 可以使⽤MQ来控制流量, 将请求排队, 然后系统根据⾃⼰的处理能⼒逐步处理这些请求。
3.消息分发:
当多个系统需要对同⼀数据做出响应时, 可以使⽤MQ进⾏消息分发. ⽐如⽀付成功后, ⽀
付系统可以向MQ发送消息, 其他系统订阅该消息, ⽽⽆需轮询数据库.
4.延迟通知:
在需要在特定时间后发送通知的场景中,可以使用MQ的延迟消息功能,比如在电子商务平台中,如果用户下单后一定时间内未支付,可以使用延迟队列在超时后自动取消订单。

相关推荐
rchmin3 分钟前
阿里Tair分布式锁与Redis分布式锁的实现区别
数据库·redis·分布式
凌乱的豆包17 小时前
Spring Cloud Alibaba Nacos 服务注册发现和分布式配置中心
分布式
独隅18 小时前
PyTorch 分布式训练完整指南:策略、实现与模型选型
人工智能·pytorch·分布式
架构师老Y19 小时前
011、消息队列应用:RabbitMQ、Kafka与Celery
python·架构·kafka·rabbitmq·ruby
墨北小七1 天前
小说大模型的分布式训练——张量并行架构设计与实现
分布式
豆豆1 天前
政务服务平台站群一体化解决方案
大数据·分布式·微服务·cms·政务·网站管理系统·站群cms
昵称暂无11 天前
分布式事务难题:Seata框架在微服务中的落地实践
分布式·微服务·架构
都说名字长不会被发现1 天前
分布式场景下的数据竞争问题与解决方案
分布式·乐观锁·悲观锁·redission·redis 分布式锁·数据版本
甘露s1 天前
分布式与可重入性的一些问题
分布式
juniperhan1 天前
Flink 系列第 3 篇:核心概念精讲|分布式缓存 + 重启策略 + 并行度 底层原理 + 代码实战 + 生产规范
大数据·分布式·缓存·flink