技术选型不能凭”谁火用谁”。本文给出一套可复用的选型框架,以消息队列选型为例演练。

一、选型的五维模型

  • 1.1 功能维度——是否满足业务需求
  • 1.2 性能维度——吞吐量、延迟、容量
  • 1.3 运维维度——部署、监控、升级
  • 1.4 团队维度——学习成本、现有经验
  • 1.5 生态维度——社区活跃度、工具链

二、功能维度分析

  • 2.1 消息模型——点对点 / 发布订阅 / 广播
  • 2.2 消息顺序——全局有序 / 分区有序
  • 2.3 消息可靠性——持久化、ACK 机制
  • 2.4 事务消息——分布式事务支持
  • 2.5 延时消息——定时投递
  • 2.6 Kafka / RocketMQ / RabbitMQ / Pulsar 功能矩阵

三、性能维度分析

  • 3.1 Kafka——百万 TPS,吞吐最高
  • 3.2 RocketMQ——十万 TPS,功能丰富
  • 3.3 RabbitMQ——万级 TPS,低延迟
  • 3.4 Pulsar——百万 TPS,存储计算分离

四、运维维度分析

  • 4.1 部署复杂度——Kafka 需 ZooKeeper(3.3+ 去 ZK)
  • 4.2 RocketMQ——NameServer + Broker,相对简单
  • 4.3 监控——自带 vs 外接
  • 4.4 扩容/缩容——分区的动态调整

五、团队与生态

  • 5.1 团队经验——有没有人用过
  • 5.2 社区活跃度——GitHub Star、Issue 响应
  • 5.3 客户端支持——Java SDK 成熟度
  • 5.4 公司内部——有没有统一的技术栈

六、选型决策

  • 6.1 日志/大数据 → Kafka
  • 6.2 业务消息/分布式事务 → RocketMQ
  • 6.3 低延迟/复杂路由 → RabbitMQ
  • 6.4 多租户/云原生 → Pulsar

七、总结

  • 选型 = 技术能力 + 业务理解 + 团队现实
  • 框架比结论更重要——下次选型可以复用