服务搭建问题
目前阿里云针对RabbitMQ、RocketMQ和Kafka均提供了PAAS级别的服务,使用者可以直接在阿里云平台创建使用,避免了本地自建的麻烦和监控运维,开箱即用,方便基于业务量横向扩展。
RocketMQ 阿里云产品官网
RabbitMQ 阿里云产品官网
Kafka 阿里云产品官网
产品对比
考虑维度:可靠性,性能,功能,SDK支持,可拓展性等
产品 | 优点 | 缺点 |
---|---|---|
RocketMQ | 性能好,稳定可靠,延迟低,消息轨迹功能强大 | TCP SDK语言支持有限,Http SDK性能较差 |
RabbitMQ | 轻量,迅捷,拥有灵活的路由配置,SDK语言支持丰富 | 性能和吞吐量较差,不易进行二次开发 |
Kafka | 拥有强大的性能及吞吐量,兼容性很好 | 因为其本身最求高吞吐,延迟较高 |
选型原则
1、如果消息队列并不是将要构建系统的主角之一,且对消息队列功能和性能都没有很高的要求,只需要一个开箱即用易于维护的消息中间件产品,建议使用RabbitMQ;
2、如果系统使用消息队列主要场景是处理在线业务,比如在交易系统中用消息队列传递订单,建议优先考虑可以支持金融级延迟的RocketMQ,其强大的消息轨迹方便对消息的跟踪定位;
3、如果是需要处理海量的消息,像收集日志、监控信息或是前端的埋点这类数据,或是应用场景大量使用了大数据、流计算相关的开源产品,Kafka是最好的选择。