技术专栏 · 发布 2026年7月13日
消息队列不是万能药
引入队列能解决耦合和削峰,也会带来重复、顺序和可观测性三类新问题。
架构讨论里,消息队列经常被当成解决方案:系统慢?加队列。模块耦合?加队列。结果很多项目引入了队列,复杂度和故障点同时增加,收益却有限。
引入之前先问三个问题
业务是否真的需要异步?用户等三秒能接受的事情,没必要拆成消息。
能否接受至少一次投递?如果不能,消费端必须有幂等处理。
失败消息怎么处理?没有死信队列和人工补偿通道,等于把问题藏起来。
常见误区
用队列解决数据库性能问题。写入瓶颈依然存在,只是从同步变成异步堆积。
认为队列天然保证顺序。多分区或多消费者下,顺序需要额外设计。
缺少监控。消息积压三天没人知道,等发现时业务已经停摆。
队列是工具,不是架构目标。能用一次同步调用解决的事情,就别增加一个中间件。