342 字
2 分钟
消息队列的三个核心价值:解耦、异步与削峰

解耦:生产者不再维护所有下游#

当 A 系统直接调用 B、C、D 时,每增加一个下游,A 都要处理新的接口、失败和超时。使用 MQ 后,A 只发布消息,谁需要数据谁订阅;新系统可以直接消费,旧系统取消订阅也不会影响 A。

直接调用造成的耦合

使用 MQ 后的发布订阅

异步:缩短用户请求链路#

如果本地写库需要 3ms,三个下游分别需要 300ms、450ms、200ms,同步调用总延迟约为 953ms。改为向 MQ 连续发送消息,发送本身只占很短时间,下游工作异步完成,用户不必等待全部写库结束。

同步调用链路

异步消息链路

削峰:让消费者按处理能力消费#

假设平时每秒 50 个请求,高峰突然达到 5k,而 MySQL 每秒只能稳定处理约 2k 个请求。MQ 可以先接收 5k 个请求,消费者按 2k 的速度拉取,避免数据库被瞬时流量打垮。

突发流量

MQ 缓冲高峰

高峰期间会产生积压,但峰值过后如果流入速度低于消费速度,积压会逐步消化。生产环境需要监控积压量、消费延迟和失败重试,避免把削峰变成永久堆积。

消息队列的三个核心价值:解耦、异步与削峰
https://blog.xqcherry.top/posts/interview/message-queues/three-benefits/
作者
xqcherry
发布于
2026-09-24
许可协议
CC BY-NC-SA 4.0