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的延迟消息功能,比如在电子商务平台中,如果用户下单后一定时间内未支付,可以使用延迟队列在超时后自动取消订单。

相关推荐
元拓数智8 小时前
智能分析落地卡壳?先补好「数据关系+语义治理」这层技术基建
大数据·分布式·ai·spark·数据关系·语义治理
GIS数据转换器12 小时前
农村生活污水治理智慧管控平台
大数据·人工智能·分布式·数据分析·生活·智慧城市
Trouvaille ~14 小时前
【Redis篇】初识 Redis:特性、应用场景与版本演进
数据结构·数据库·redis·分布式·缓存·中间件·持久化
米高梅狮子15 小时前
Ceph 分布式存储 部署
linux·运维·数据库·分布式·ceph·docker·华为云
郭龙_Jack15 小时前
跨境电商 平台 - ERP - 内部子系统 交互方式总图
分布式·教育电商
喝醉酒的小白16 小时前
Kafka 集群应急故障排查手册
分布式·kafka
无籽西瓜a16 小时前
【西瓜带你学Kafka | 第八期】 Kafka的主从同步、消息可靠性、流处理与顺序消费(文含图解)
java·分布式·后端·kafka·消息队列·mq
qqVHU16 小时前
kafka笔记
笔记·分布式·kafka
醉颜凉16 小时前
Kafka 消息过期时间设置与清理机制全解析
分布式·kafka·linq
Jinkxs16 小时前
SkyWalking - Kafka _ RabbitMQ 消息链路追踪支持
kafka·rabbitmq·skywalking