342 字
2 分钟
消息队列的三个核心价值:解耦、异步与削峰
解耦:生产者不再维护所有下游
当 A 系统直接调用 B、C、D 时,每增加一个下游,A 都要处理新的接口、失败和超时。使用 MQ 后,A 只发布消息,谁需要数据谁订阅;新系统可以直接消费,旧系统取消订阅也不会影响 A。


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


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


高峰期间会产生积压,但峰值过后如果流入速度低于消费速度,积压会逐步消化。生产环境需要监控积压量、消费延迟和失败重试,避免把削峰变成永久堆积。
消息队列的三个核心价值:解耦、异步与削峰
https://blog.xqcherry.top/posts/interview/message-queues/three-benefits/ 目录