Prompts-MCP 686 skills · ai / design / design-pattern / framework / fundamentals / habit / lang / tech-selection /mcp/sse
tech-selection tech-selection/message-queue/decision-tree.md medium

tech-selection-mq-decision

消息队列选型决策树 + 典型场景速查(日志大数据→Kafka,订单事务+定时关单→RocketMQ,低延迟任务队列→RabbitMQ,多租户→Pulsar)。Use when 已知场景要直接定一款 MQ / 评审 MQ 选型结论时。

消息队列决策树场景选型事务消息定时关单kafkarocketmq
paths
  • *.java
  • *.yml
  • *.xml

消息队列 · 决策树与场景速查

本条只管「已知场景直接选谁」。四款逐项能力差异见 comparison.md。 前置:先确认真有异步解耦/削峰/重放需求再上 MQ,否则别引入。

决策树

你的硬需求 选谁
金融级事务消息 / 任意定时延迟消息 / 严格全局顺序 RocketMQ
百万级吞吐 + 日志重放 + 大数据流(Flink/Spark) Kafka
低延迟 + 灵活路由 + 传统任务队列/RPC,万级够用 RabbitMQ
多租户 / 跨地域 / 存算分离弹性 / 冷热分层 Pulsar

典型场景速查

场景 选谁 关键理由
日志采集 / 大数据 ETL Kafka 百万级吞吐 + offset 重放
电商订单 + 定时关单 + 下单事务 RocketMQ 内置定时 + 两阶段事务回查
削峰任务队列 / 低延迟通知 / 广播 RabbitMQ 单数字 ms 延迟 + 灵活路由
多租户云平台 Pulsar 原生多租户 + 存算分离

反例:选错的常见踩坑

  • ❌ 需要定时关单却选 Kafka —— Kafka 无原生定时/延迟消息,被迫自造轮子。
  • ❌ 只要万级吞吐的任务队列却上 Kafka/Pulsar —— 运维成本远超收益,RabbitMQ 够用。
  • ❌ 需要严格全局顺序却选 RabbitMQ —— 顺序保证弱,应选 RocketMQ。

自检

  • [ ] 确认真有异步/削峰/重放硬需求,而非「别人都用所以上」?
  • [ ] 场景的核心约束(事务 / 定时 / 顺序 / 吞吐)映射到了正确的那一款?
  • [ ] 运维复杂度团队扛得住(尤其 Kafka/Pulsar)?

相关