消息队列常见面试题:消息队列该如何选型?

面试题 潘老师 9个月前 (06-16) 35 ℃ (0) 扫码查看

同学们,经常有人问,消息队列的种类繁多,在进行项目规划时到底该怎么选呢?相信很多同学都有同样的困惑。其实市面上常用的消息队列也就三个,分别是 rabbitmq、rocketmq 和 kafka 。

咱们几年前搭建框架时,选择的是 rabbitmq 。当时主要是觉得它在 spring cloud 里集成方便,有相关界面能自定义路由规则、指定消费队列,比较人性化,而且跨平台,能支持后续扩展,性能也还说得过去,业务量不大时用着还行,直到现在大部分业务也还在用。

近几年,rocketmq 的呼声更高。它除了支持更多场景,像有序、事务、流计算都能直接支持,性能方面号称每秒能处理几十万消息量,在响应延迟方面做了很多优化,大多在毫秒级别。要是做电商,对响应时效有要求,可以考虑 rocketmq 。不过它是用 java 写的,对其他语言兼容性不太好,如果是 php 或者 c#程序员,就不建议选了。

kafka 是异步发送和接收消息的,性能比 rocketmq 和 rabbitmq 都好,号称理论上每秒能处理千万级消息量。所以在大数据、流计算领域,像数据采集等,几乎都用它。但它有个缺点,就是有时延。

总结一下,如果是互联网电商平台,业务量大、对低时延有要求,建议选 rocketmq ;如果要处理大批量数据同步、离线计算,建议选 kafka ;一般场景下考虑兼容性、集成便利性,建议选 rabbitmq 。

好了,今天的分享就到这里,要是对内容有疑问,欢迎留言交流。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/ms/13055.html
喜欢 (1)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】