消息队列选型问题-阿里云开发者社区

开发者社区> 云服务技术课堂> 正文

消息队列选型问题

简介: 消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。下面主要介绍RabbitMQ、RocketMQ和Kafka三款消息中间件的选型。

服务搭建问题

目前阿里云针对RabbitMQ、RocketMQ和Kafka均提供了PAAS级别的服务,使用者可以直接在阿里云平台创建使用,避免了本地自建的麻烦和监控运维,开箱即用,方便基于业务量横向扩展。

RocketMQ 阿里云产品官网
RabbitMQ 阿里云产品官网
Kafka 阿里云产品官网

产品对比

考虑维度:可靠性,性能,功能,SDK支持,可拓展性等

产品 优点 缺点
RocketMQ 性能好,稳定可靠,延迟低,消息轨迹功能强大 TCP SDK语言支持有限,Http SDK性能较差
RabbitMQ 轻量,迅捷,拥有灵活的路由配置,SDK语言支持丰富 性能和吞吐量较差,不易进行二次开发
Kafka 拥有强大的性能及吞吐量,兼容性很好 因为其本身最求高吞吐,延迟较高

选型原则

1、如果消息队列并不是将要构建系统的主角之一,且对消息队列功能和性能都没有很高的要求,只需要一个开箱即用易于维护的消息中间件产品,建议使用RabbitMQ;

2、如果系统使用消息队列主要场景是处理在线业务,比如在交易系统中用消息队列传递订单,建议优先考虑可以支持金融级延迟的RocketMQ,其强大的消息轨迹方便对消息的跟踪定位;

3、如果是需要处理海量的消息,像收集日志、监控信息或是前端的埋点这类数据,或是应用场景大量使用了大数据、流计算相关的开源产品,Kafka是最好的选择。

参考链接

该如何选择消息队列
新手也能看懂,消息队列其实很简单

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

云服务技术课堂,各类技术课程、最佳实践输出,来好好听课吧!

官方博客