这篇文主打一个主观锐评,虽然参考了吞吐量、高可用这些硬指标,但更多的是聊聊后端老兵在实际生产环境里的“血泪史”。
消息队列(MQ)这东西,面试的时候全在造火箭(削峰填谷、异步解耦、最终一致性),真到了线上,往往是谁吞了我的消息?消息怎么又重复了?卧槽队列怎么又堆积了?
简单说,“夯”就是稳如老狗,半夜不用起夜;“拉”就是坑有点多,运维起来像伺候大爷。
当然了,没有最废的MQ,只有最不合适的业务场景(求生欲再次拉满)。
不整那些跑分对比了,主要看这几点:
分层 | 消息队列 | 建议 |
|---|---|---|
夯 | RocketMQ | 电商/金融闭眼选,业务特性拉满,稳。 |
顶级 | Kafka | 大数据、日志处理、超高并发选它。 |
小清新 | NSQ | Go圈极简选它,部署一秒钟,没有运维包袱。 |
NPC | RabbitMQ | 功能全、路由强,但高并发容易拉胯,老项目维持现状。 |
拉完了 | Redis / ActiveMQ | 别拿缓存当正经 MQ 考验人性;老古董快淘汰。 |