Kafka、RabbitMQ、RocketMQ 有什么优缺点?

面试官心理分析

既然你引入了消息队列(MQ),可能是某一种特定的消息队列,那么当时你有没有进行过相关调研呢?不要盲目地凭个人喜好或者头脑一热就选择了某种消息队列,列如 Kafka,甚至对业界流行的消息队列都没有做过调研。每种消息队列都有其优点和缺点,并没有绝对的优劣之分,关键是要根据具体场景来选择合适的消息队列,利用其优势,规避其劣势。如果招进团队的是一个不思考技术选型的候选人,当领导交给他一个任务去设计系统时,他可能在技术选型上并没有充分思考,最终选择的技术可能并不合适,也会留下隐患。

面试题剖析

根据业务场景选择,大数据用Kafka,复杂业务用RabbitMQ,金融级用RocketMQ

Kafka、RabbitMQ、RocketMQ 有什么优缺点?

综上,各种对比之后,有如下提议:

目前许多公司都引入 MQ,一开始是 ActiveMQ,但是支持不很好,我们就不做推荐了,后来大家开始用 RabbitMQ,但是的确 erlang 语言阻止了大量的 Java 工程师去深入研究和掌控它,对公司而言,几乎处于不可控的状态,但是的确 人家是开源的,比较稳定的支持,活跃度也高;

不过目前越来越多的公司都在用 RocketMQ,的确 很不错,毕竟是阿里出品,目前 RocketMQ 已捐给 Apache,不过有些功能只有阿里商业版才有,对自己公司技术实力有绝对自信的。

所以中小型公司,技术实力较为一般,技术挑战不是特别高,用 RabbitMQ 是不错的选择;大型公司,基础架构研发实力较强,用 RocketMQ 是很好的选择。

如果是大数据领域的实时计算、日志采集等场景,用 Kafka 是业内标准的,绝对没问题,社区活跃度很高,绝对不会黄,何况几乎是全世界这个领域的实际性规范。

Kafka在企业中应用广泛的核心缘由

  1. 场景匹配度高
  • 专为高吞吐、低延迟的大规模数据流设计(如日志、交易流水、用户行为跟踪)
  • 企业数字化转型中,实时数据处理成为刚需
  1. 架构优势突出
  • 分布式分区:天然支持水平扩展(对比RabbitMQ的镜像队列扩展成本高)
  • 持久化存储:消息可保留多天,支持重复消费(对比RabbitMQ内存积压易崩溃)
  1. 生态整合能力强
  • 与大数据栈(Flink/Spark)深度集成,形成端到端实时计算管道
  • 云厂商(AWS/Aliyun)提供托管服务,降低运维成本
© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容