- 不支持消息路由,支持的客户端语言不多,目前是 java 及 c++,其中 c++ 不成熟;
- 部分支持消息有序:需要将同一类的消息 hash 到同一个队列 Queue 中,才能支持消息的顺序,如果同一类消息散落到不同的 Queue中 , 就不能支持消息的顺序 。
- 社区活跃度一般 。
- 支持几乎所有最受欢迎的编程语言:Java,C , C ++,C#,Ruby,Perl,Python/ target=_blank class=infotextkey>Python,php等等;
- 支持消息路由:RabbitMQ 可以通过不同的交换器支持不同种类的消息路由;
- 消息时序:通过延时队列,可以指定消息的延时时间,过期时间TTL等;
- 支持容错处理:通过交付重试和死信交换器(DLX)来处理消息处理故障;
- 提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker;
- 社区活跃度高 。
- Erlang 开发,很难去看懂源码,不利于做二次开发和维护,基本职能依赖于开源社区的快速维护和修复 bug;
- RabbitMQ 吞吐量会低一些,这是因为他做的实现机制比较重;
- 不支持消息有序、持久化不好、不支持消息回溯、伸缩性一般 。
RocketMQ:天生为金融互联网领域而生,对于可靠性要求很高的场景,尤其是电商里面的订单扣款,以及业务削峰,在大量交易涌入时 , 后端可能无法及时处理的情况 。RoketMQ 在稳定性上可能更值得信赖,这些业务场景在阿里双 11 已经经历了多次考验 , 如果你的业务有上述并发场景,建议可以选择 RocketMQ 。
RabbitMQ:结合 erlang 语言本身的并发优势 , 性能较好,社区活跃度也比较高,但是不利于做二次开发和维护,不过 RabbitMQ 的社区十分活跃,可以解决开发过程中遇到的 bug 。如果你的数据量没有那么大,小公司优先选择功能比较完备的 RabbitMQ 。
ActiveMQ:官方社区现在对 ActiveMQ 5.x 维护越来越少,较少在大规模吞吐的场景中使用 。
【四种消息队列,如何选型?】
推荐阅读
- RabbitMQ与消息限流策略的完美结合
- 36岁宋茜跟小5岁欧豪隐婚,消息八九不离十?工作室回应了
- 0713陈楚生传来新消息,蔡国庆恭喜魏哲鸣,林志颖李玖哲再度重逢
- 刮油最狠的四种减肥蔬菜 怎么减脂肪最快最有效的方法
- 能咋得发表微博,微博设置特别关注的人的消息怎样才能及时收到怎么设置
- 有四种药酒是传自古代的 你知道他们的名字吗
- 小辣椒手机如何设置锁屏消息
- 微信验证消息能咋得看全
- qq互发消息怎么计数
- DNS消息:如何阅读查询和响应消息