mq是什么,常用mq的使用场景有哪些?

一、MQ 是什么?

MQ = Message Queue 消息队列

可以简单理解为:一个高效、可靠、异步的 "快递中转站"。

  • 系统 A 把消息发给 MQ
  • MQ 暂存消息
  • 系统 B 从 MQ 慢慢取消息处理
  • 本质:异步、解耦、削峰、缓冲。

二、为什么要用 MQ?(核心 4 大作用)

1. 异步(提速)

不用同步等待,主线程立刻返回。例如:

  • 用户注册 → 发邮件 / 发短信
  • 下单 → 扣库存、通知物流、积分增加

不用等全部做完才返回,用户体验极快。

2. 解耦(系统不互相绑定)

A 系统不直接调用 B、C、D,只发 MQ。B、C、D 自己订阅消费。

新增系统不用改 A 代码,架构更干净。

3. 削峰(抗高并发)

秒杀、双十一流量暴涨:

  • 直接打数据库 → 崩溃
  • 进 MQ → 慢慢消费

保护下游服务不被冲垮。

4. 最终一致性(分布式事务)

分布式系统无法用本地事务,用 MQ 保证:

  • 订单创建成功
  • 库存一定扣
  • 日志一定记

最终数据一致。

三、市面上常用 MQ 对比(必背)

1. RabbitMQ

  • 语言:Erlang
  • 优点:稳定、可靠、功能全(延时、死信、路由、ACK)
  • 缺点:吞吐量中等
  • 适合:企业级微服务、订单、支付、可靠消息

2. RocketMQ(阿里)

  • 优点:高吞吐、高可用、海量消息
  • 适合:电商、秒杀、大数据、高并发

3. Kafka

  • 优点:超高吞吐、日志、流处理
  • 适合:日志收集、用户行为、大数据实时计算

4. ActiveMQ

  • 老、重,现在很少用

四、MQ 最经典使用场景(工作 90% 都这些)

1. 异步通知(最常用)

  • 用户注册成功 → 发送短信 / 邮件
  • 订单支付成功 → 推送 APP、公众号通知
  • 商品评价 → 增加积分

主线程不等待,直接返回。

2. 订单系统(核心场景)

  • 创建订单 → 发送 MQ
  • 库存系统扣减
  • 物流系统创建物流单
  • 积分系统增加积分
  • 风控系统检查

解耦 + 异步 + 最终一致性

3. 延迟任务(必须会)

  • 订单30 分钟未支付,自动取消
  • 收货后 7 天自动确认
  • 预约任务定时执行

RabbitMQ 死信队列 / RocketMQ 延迟等级

4. 秒杀 / 高并发削峰

  • 秒杀 1 秒几千请求
  • 直接进 MQ,消费者慢慢处理
  • 防止数据库、服务被冲垮

5. 日志 / 大数据采集

  • 服务日志、用户行为日志
  • 大量写入 → Kafka
  • 后续做实时计算、离线分析

6. 分布式事务最终一致性

  • 订单 + 库存 + 支付 跨服务
  • 可靠消息 + 重试 + 幂等 保证最终一致

7. 系统解耦

  • 商品上下架 → 通知搜索服务重建索引
  • 价格变更 → 通知缓存服务更新
  • A 系统不直接调用 B,只发 MQ

8. 流量控制、限流

  • 下游处理慢,MQ 缓冲
  • 消费者 prefetch 控制拉取速度

五、一句话总结

MQ 就是用来:异步、解耦、削峰、保证最终一致性的中间件,解决高并发、分布式系统的同步耦合与性能问题。

相关推荐
逍遥德21 小时前
SpringBoot自带TaskScheduler 接口使用详解:(02)微服务多实例模式下,爆发任务重复执行问题
spring boot·分布式·后端·微服务·中间件
灰乌鸦乌卡1 天前
关于OA自定义接口不能解析汉字记录
java·中间件
Thanks_ks1 天前
消息队列的进阶修炼:从 “不可靠交付” 到 “分布式最终一致性”
消息队列·rabbitmq·rocketmq·分布式事务·微服务架构·分布式系统·最终一致性
fuquxiaoguang1 天前
从“能跑起来”到“能跑稳”:Google Genkit如何用中间件思维改写AI工程化规则
人工智能·中间件·genkit
程序员雷欧1 天前
趣享社项目实战:同步 + 异步双模式内容审核与 RabbitMQ 可靠投递深度解析
rabbitmq
逆境不可逃2 天前
Hello-Agents 第二部分-第六章:框架开发实践
java·人工智能·分布式·学习·架构·rabbitmq
徐子童2 天前
RabbitMQ---开篇
rabbitmq
小旭95272 天前
RabbitMQ 核心详解
分布式·rabbitmq
June bug2 天前
【AI赋能测试笔记】3中间件
人工智能·中间件
fuquxiaoguang2 天前
修一个Bug,引入另一个Bug:从Tomcat高危漏洞看中间件安全修复的困境
中间件·tomcat·安全漏洞·cve-2026-34486