MQ产品比较-ActiveMQ-RocketMQ

针对消息中间件的选择可以从以下方面进行考虑:(主要对比ActiveMQ和RocketMQ)

  • 优先级:我们的项目对此需求不是特别明显,RocketMQ需要新建一个特殊队列来接收优先级高的队列,无法实现从0-65535这种细粒度的控制,ActiveMQ可以精细控制

  • 顺序:我们的消息总线中的消息应该都是无状态的,所以对消息的处理顺序没有严格的要求,如果有特殊要求的话可以在业务层进行控制,activeMQ无法保证严格的顺序,RocketMQ可以保证严格的消费顺序

  • 持久化:都支持

  • 稳定性:RoketMQ在稳定性上可能更值得信赖,支持多种集群方案,毕竟已经撑过几个双十一

  • 消息过滤:ActiveMQ仅支持在客户端消费的时候进行判断是否是自己需要的消息,RocketMQ可以在broker端进行过滤,对于我们的消息总线,这里可以节省大量的网络传输是否会有消息重发造成的重复消费:RocketMQ可以保证,ActiveMQ无法保证

  • 回溯消费:即重新将某一个时刻之前的消息重新消费一遍,我们对于这种需求应该很少,RocketMQ支持,ActiveMQ不支持(RocketMQ的队列是持久化到硬盘的,定期进行清除

  • 事务:都支持

  • 定时消费:RocketMQ支持

  • 消息堆积:就是当缓存消息的内存满了之后的解决方案,一种是丢弃策略,这种不会影响吞吐量,还有一种就是将消息持久化到磁盘,这种会影响吞吐量,在评估影响程度上,RocketMQ的成绩稍微好一点

  • 客户端不在线:RocketMQ可以在客户端上线后继续将未消费的消息推送到客户端

 

  • 目前比较活跃的几种MQ中间件产品的对比如下:(仅统计开源的项目)

 ActiveMQRabbitMQRocketMqZeroMQ
关注度
成熟度成熟成熟比较成熟不成熟
所属社区/公司ApacheMozilla Public LicenseAlibaba 
社区活跃度
文档
特点功能齐全,被大量开源项目使用由于Erlang 语言的并发能力,性能很好各个环节分布式扩展设计,主从 HA;支持上万个队列;多种消费模式;性能很好低延时,高性能,最高 43万条消息每秒
授权方式开源开源开源开源
开发语言JavaErlangJavaC
支持的协议OpenWire、STOMP、REST、XMPP、AMQPAMQP自己定义的一套(社区提供JMS–不成熟)TCP、UDP
客户端支持语言Java、C、C++、Python、PHP、Perl、.net 等Java、C、C++、Python、 PHP、Perl 等Java C++(不成熟)python、 java、 php、.net 等
持久化内存、文件、数据库内存、文件磁盘文件在消息发送端保存
事务支持支持支持不支持
集群支持支持支持不支持
负载均衡支持支持支持不支持
管理界面一般
部署方式独立、嵌入独立独立独立
评价优点:成熟的产品,已经在很多公司得到应用(非大规模场景)。有较多的文档。各种协议支持较好,有多重语言的成熟的客户端;缺点:根据其他用户反馈,会出莫名其妙的问题,切会丢失消息。 其重心放到activemq6.0 产品—apollo 上去了,目前社区不活跃,且对 5.x 维护较少;Activemq 不适合用于上千个队列的应用场景优点: 由于erlang语言的特性,mq 性能较好;管理界面较丰富,在互联网公司也有较大规模的应用;支持amqp系诶,有多中语言且支持 amqp 的客户端可用缺点:erlang语言难度较大。集群不支持动态扩展。优点:模型简单,接口易用(JMS 的接口很多场合并不太实用)。在阿里大规模应用。目前支付宝中的余额宝等新兴产品均使用rocketmq。集群规模大概在50 台左右,单日处理消息上百亿;性能非常好,可以大量堆积消息在broker 中;支持多种消费,包括集群消费、广播消费等。开发度较活跃,版本更新很快。缺点:没有在 mq 核心中去实现JMS 等接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值