大促、秒杀、突发热点,请求瞬间暴涨,数据库与接口扛不住,全线雪崩。
下单要同步等通知、积分、短信、日志全部串行,一个环节慢全链路慢。
异步任务没可靠保障,消息丢了、重复消费了,订单和账单都对不上。
把瞬时高峰流量缓存到队列,消费端平滑处理,保护下游系统。
生产者发消息即返回,消费者异步处理,模块间彻底解耦。
消息持久化 + ACK 机制,保证不丢消息,支持重试与补偿。
一条消息多消费者订阅,事件驱动架构的基础。
Kafka 支持高吞吐日志与数据流,是数据管道的事实标准。
延迟队列实现定时任务、超时关单等场景。
| 对比项 | Kafka | RabbitMQ | RocketMQ |
|---|---|---|---|
| 定位 | 高吞吐流式管道 | 轻量消息总线 | 业务级消息中间件 |
| 吞吐 | 极高 | 中等 | 高 |
| 路由能力 | 弱 | 强(交换机) | 中 |
| 事务消息 | 部分 | 弱 | 强 |
| 典型场景 | 日志、数据管道、大流量 | 业务解耦、任务队列 | 电商、金融业务 |
先想清楚场景,再选组件,别被"流行"带偏。
| 业务场景 | 推荐 | 原因 |
|---|---|---|
| 日志/埋点/数据管道 | Kafka | 高吞吐、顺序性、保留时间长 |
| 业务解耦/任务队列 | RabbitMQ | 路由灵活、延迟队列、运维轻 |
| 电商/金融交易 | RocketMQ | 事务消息、可靠投递、业务级能力 |
| 云上托管省运维 | 云厂商 MQ | 免运维、弹性、可用性 SLA |
| 轻量异步通知 | Redis Stream/List | 已有 Redis 时零新增组件 |
| 小型项目 | 先不上 MQ | 同步 + 定时任务足够时别引入复杂度 |
下单后异步处理库存、积分、通知,超时关单用延迟队列。
海量访问日志、行为埋点走 Kafka,异步入库不拖垮业务。
短信、邮件、App 推送异步发送,削峰且失败可重试。
服务间事件通信,新增消费者不影响生产者,架构灵活演进。