> 演示输入：合成数据，不代表真实客户/生产结果

# 消息队列选型结论预览

合成约束：8人Java团队，无专职中间件运维；订单峰值120条/秒，单消息2KB，要求至少一次投递，允许秒级积压恢复。这里没有采用近一年真实基准或云价，因此不呈现成本数字。

| 维度 | Kafka | RocketMQ | Pulsar | 本项目权重 |
|---|---|---|---|---:|
| 团队上手 | 中 | 较高（Java友好） | 较低 | 25% |
| 订单语义 | 需自行设计 | 延迟/事务消息适配度较好 | 能力完整但复杂 | 30% |
| 运维复杂度 | 中 | 中 | 高 | 25% |
| 峰值余量 | 充足 | 充足 | 充足 | 10% |
| 托管可得性 | 待核云清单 | 待核云清单 | 待核云清单 | 10% |

## 暂定建议

在“现有云提供成熟托管 RocketMQ、团队已有Java经验”的前提下，优先做 RocketMQ 两周验证。原因不是它吞吐最高，而是三种方案都远超120条/秒，真正差异在订单延迟消息、失败重试与值班成本。若现有平台只对 Kafka 有成熟托管和监控，则改选 Kafka，避免为理论优势自建集群。

## 两周验证清单

- 重复消息：同一订单重放3次，库存只扣一次；
- 故障恢复：Broker不可用10分钟后，积压在15分钟内消化；
- 顺序性：同一订单“创建—支付—取消”不乱序；
- 可观测：能按订单号定位生产、消费和死信；
- 总成本：记录托管费、监控费和每周人工时。

## 明确不做

跨地域多活、百万级分区、Tiered Storage、复杂流处理均属当前过度设计。上线门槛是幂等键、重试上限、死信处理人和回放SOP齐备，而不是把三个中间件的高级功能都装上。
