几种MQ产品说明:
ZeroMQ : 扩展性好,开发比较灵活,采用C语言实现,实际上他只是一个socket库的重新封装,如果我们做为消息队列使用,需要开发大量的代码
RabbitMQ :结合erlang语言本身的并发优势,性能较好,但是不利于做二次开发和维护
ActiveMQ: 历史悠久的开源项目,已经在很多产品中得到应用,实现了JMS1.1规范,可以和spring-jms轻松融合,实现了多种协议,不够轻巧(源代码比RocketMQ多).,支持持久化到数据库,对队列数较多的情况支持不好,不过我们的项目中并不会建很多的队列.
Redis 做为一个基于内存的K-V数据库,其提供了消息订阅的服务,可以当作MQ来使用,目前应用案例较少,且不方便扩展
RocketMQ: 阿里巴巴的MQ中间件,在其多个产品下使用,并能够撑住双十一的大流量,他并没有实现 JMS规范,使用起来很简单。部署由一个 命名服务(nameserver)和一个代理(broker)组成,nameserver和broker以及 producer都支持集群,队列的容量受机器硬盘的限制,队列满后可以支持持久化到硬盘(也可以自己适配代码,将其持久化到NOSQL数据库中),队列 满后会影响吞吐量,可以采用主备来保证稳定性,支持回溯消费,可以在broker端进行消息过滤.
针对消息中间件的选择可以从以下方面进行考虑:(主要对比ActiveMQ和RocketMQ)
优先级:我们的项目对此需求不是特别明显,RocketMQ需要新建一个特殊队列来接收优先级高的队列,无法实现从0-65535这种细粒度的控制,ActiveMQ可以精细控制
顺序:我们的消息总线中的消息应该都是无状态的,所以对消息的处理顺序没有严格的要求,如果有特殊要求的话可以在业务层进行控制,activeMQ无法保证严格的顺序,RocketMQ可以保证严格的消费顺序
持久化:都支持
稳定性:RoketMQ在稳定性上可能更值得信赖,支持多种集群方案,毕竟已经撑过几个双十一
消息过滤:ActiveMQ仅支持在客户端消费的时候进行判断是否是自己需要的消息,RocketMQ可以在broker端进行过滤,对于我们的消息总 线,这里可以节省大量的网络传输是否会有消息重发造成的重复消费:RocketMQ可以保证,ActiveMQ无法保证
回溯消费:即重新将某一个时刻之前的消息重新消费一遍,我们对于这种需求应该很少,RocketMQ支持,ActiveMQ不支持(RocketMQ的队列是持久化到硬盘的,定期进行清除
事务:都支持
定时消费:RocketMQ支持
消息堆积:就是当缓存消息的内存满了之后的解决方案,一种是丢弃策略,这种不会影响吞吐量,还有一种就是将消息持久化到磁盘,这种会影响吞吐量,在评估影响程度上,RocketMQ的成绩稍微好一点
客户端不在线:RocketMQ可以在客户端上线后继续将未消费的消息推送到客户端
目前比较活跃的几种MQ中间件产品的对比如下:(仅统计开源的项目)
http://www.coin163.com/good/blog/mq.html
相关推荐
MQ各个版本与java JDK各个版本和IBM jar包各个版本的混合测试结果。以及对不同通道SSL加密套件的支持。
本篇文章将深入探讨四种常用的消息中间件:RabbitMQ、ActiveMQ、RocketMQ和Kafka,以及它们在实际应用中的特点和使用经验。 首先,RabbitMQ是一款基于AMQP(Advanced Message Queuing Protocol)协议的开源消息...
rocketmq-console rocketmq管理后台 whatsmars-rpc 常用rpc whatsmars-spring-boot springboot果然很方便 whatsmars-redis Cache Service & Redis Cluster whatsmars-motan weibo分布式RPC框架 demo server ...
rocketmq-console rocketmq管理后台 whatsmars-rpc 常用rpc whatsmars-spring-boot springboot果然很方便 whatsmars-redis Cache Service & Redis Cluster whatsmars-motan weibo分布式RPC框架 demo server ...
- **2012年**:为了适应更加复杂的业务场景,阿里巴巴发布了AliwareMQ v1.0,支持公有云、金融云、私有云等多种部署方式,并提供了更强的数据安全性保障。 - **2015年**:RocketMQ正式开源,标志着阿里巴巴在消息...
#### Kafka与Activemq、Rabbitmq、ZeroMq、Rocketmq的比较 在现代分布式系统中,消息中间件(Message Queue, MQ)扮演着至关重要的角色,它们用于在分布式组件之间传输消息,帮助解决网络延迟、组件故障等问题,...
activemq思维导图2019 当前使用较多的消息中间件有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等,本次以Apache的ActiveMQ作为切入点,分为基础/实战/面试上中下三大部分,将带着同学们从零基础入门到熟练...
在本文中,我们将深入探讨如何使用SpringBoot、ActiveMQ和MQTT来实现消息的发送与接收。这是一个典型的分布式系统中的消息通信场景,其中SpringBoot作为应用程序框架,ActiveMQ作为消息中间件,而MQTT(Message ...
3. **常见的 MQ 产品** 除了 RocketMQ,还有其他知名的消息中间件,如 Apache Kafka、RabbitMQ、ActiveMQ 等,它们各自有独特的特性和适用场景。 4. **MQ 常用的协议** RocketMQ 使用的是基于 TCP 的自定义协议,...
### 1.5 MQ产品比较 - **ActiveMQ**:基于Java,具有较高的成熟度,适合处理万级数据吞吐。 - **RabbitMQ**:采用Erlang实现,处理速度快,适用于万级数据吞吐。 - **RocketMQ**:Java编写,具备强大的分布式能力和...
- 其他MQ产品如**ActiveMQ**和**RocketMQ**的管理界面较为一般,这可能会影响到用户体验。 **13. 部署方式** - 大部分MQ产品支持独立部署和嵌入式部署,这为用户提供了一定程度的灵活性。 #### 三、产品特性总结 ...
1. **MQ产品类别**: - Kafka:高性能、高吞吐量的消息队列系统。 - RabbitMQ:基于AMQP协议的企业级消息队列服务。 - RocketMQ:阿里巴巴开源的一款分布式消息中间件。 - ActiveMQ:Apache的一个非常成熟的开源...
以下是对RocketMQ面试题的详细解答,涵盖了多个MQ的选型、MQ的作用、RocketMQ的角色及特点、Topic与JMS Queue的区别以及消息删除策略。 1. 多个MQ如何选型? - RabbitMQ:基于Erlang开发,对消息堆积支持不足,...
在本文档中,我们将对以下十种消息队列(Message Queue,简称MQ)系统进行详细的技术选型对比:ActiveMQ、RabbitMQ、RocketMQ、Joram、HornetQ、OpenMQ、MuleMQ、SonicMQ、ZeroMQ以及Kafka。这些系统在企业级应用中...
#### 项目介绍 spring 实践学习案例,与其它组件结合如 mybatis、jpa、dubbo... - Spring 集成 消息队列,包括 kafka、rabbitmq、activemq、rocketmq、redismq - spring-auth - Spring 权限认证,包括 Apache Shiro
- RocketMQ:阿里巴巴开源产品,适用于大规模分布式系统,具有高可用和高性能特性。 - Kafka:最初由LinkedIn开发,现为Apache项目,侧重实时流处理和大数据场景。 5. **MQ的关键特性**: - 高可用:通过集群和...
RocketMQ与其他MQ的对比 - **ActiveMQ**:基于Java开发,具有较低的消息丢失概率,但社区活跃度相对较低,可能有丢消息的风险。 - **RabbitMQ**:使用Erlang语言,提供丰富的MQ功能和管理界面,但吞吐量较低,且...
本文将详细介绍三款流行的MQ工具:RocketMQ、ActiveMQ和RabbitMQ。 1. **RocketMQ** RocketMQ是由阿里巴巴开源的一款分布式消息中间件,主要用于解决大规模分布式系统中的消息传递问题。它具有高吞吐量、低延迟、...