目前业界有很多MQ产品,我们作如下对比:
RabbitMQ
是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个经纪人(Broker)构架,这意味着消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都有很好的支持。
Redis
是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。
|
入队 |
出队 |
||||||
|
128B |
512B |
1K |
10K |
128B |
512B |
1K |
10K |
Redis |
16088 |
15961 |
17094 |
25 |
15955 |
20449 |
18098 |
9355 |
RabbitMQ |
10627 |
9916 |
9370 |
2366 |
3219 |
3174 |
2982 |
1588 |
ZeroMQ
号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战。ZeroMQ具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演了这个服务角色。你只需要简单的引用ZeroMQ程序库,可以使用NuGet安装,然后你就可以愉快的在应用程序之间发送消息了。但是ZeroMQ仅提供非持久性的队列,也就是说如果down机,数据将会丢失。其中,Twitter的Storm中使用ZeroMQ作为数据流的传输。
ActiveMQ
是Apache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 Php、 Ruby等。
Jafka/Kafka
Kafka是Apache下的一个子项目,是一个高性能跨语言分布式Publish/Subscribe消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具有以下特性:快速持久化,可以在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既可以达到10W/s的吞吐速率;完全的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现复杂均衡;支持Hadoop数据并行加载,对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka通过Hadoop的并行加载机制来统一了在线和离线的消息处理,这一点也是本课题所研究系统所看重的。Apache Kafka相对于ActiveMQ是一个非常轻量级的消息系统,除了性能非常好之外,还是一个工作良好的分布式系统。
其他一些队列列表HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS就不再一一分析。
相关推荐
"阿里云 专有云企业版 V3.8.1 消息队列 MQ 产品简介 20190916" 阿里云 专有云企业版 V3.8.1 消息队列 MQ 产品简介 20190916 是一款基于云计算平台的消息队列产品,旨在提供高效、可靠、安全的消息队列服务。该产品...
阿里云专有云Enterprise版消息队列MQ专业版V3.1.0产品简介 本文档是阿里云专有云Enterprise版消息队列MQ专业版V3.1.0的产品简介,旨在为用户提供该产品的详细介绍和使用指南。该产品是阿里云专有云Enterprise版的一...
阿里云专有云企业版V3.8.1消息队列MQ运维指南20190916 阿里云专有云企业版V3.8.1消息队列MQ运维指南是阿里云提供的一份详细的运维指南,旨在帮助用户了解和掌握消息队列MQ的运维知识。该指南涵盖了消息队列MQ的产品...
阿里云专有云 Enterprise 版消息队列 MQ 专业版 V3.3.0 产品简介 本文档提供了阿里云专有云 Enterprise 版消息队列 MQ 专业版 V3.3.0 的产品简介,涵盖了产品的法律声明、通用约定、目录、功能特性、使用指南等方面...
阿里云专有云Enterprise版消息队列MQ铂金版技术白皮书 阿里云专有云Enterprise版消息队列MQ铂金版技术白皮书是阿里云提供的一种消息队列解决方案,旨在帮助企业快速构建高效、可靠的消息队列系统。该解决方案基于...
"阿里云专有云Enterprise版消息队列MQ铂金版V3.3.0运维指南" 以下是从给定文件中生成的相关知识点: 1. 阿里云专有云Enterprise版消息队列MQ铂金版V3.3.0运维指南的法律声明:该部分内容详细介绍了阿里云对使用该...
阿里云专有云企业版消息队列MQ专业版开发指南 本文档旨在为阿里云专有云企业版消息队列MQ专业版的开发人员提供指南,涵盖了消息队列MQ专业版的基本概念、架构设计、功能特点、开发指南、常见问题等方面的内容。 一...
阿里云专有云企业版V3.5.2消息队列MQ专业版开发指南 本文档是阿里云专有云企业版V3.5.2消息队列MQ专业版开发指南,旨在帮助用户快速了解和使用消息队列MQ专业版产品。该文档涵盖了消息队列MQ专业版的基本概念、架构...
阿里云专有云Enterprise版消息队列MQ专业版用户指南 V3.1.0 本文档是阿里云专有云Enterprise版消息队列MQ专业版 V3.1.0 的用户指南,旨在帮助用户快速了解和掌握消息队列MQ专业版的使用方法和相关知识。 1. Legal ...
阿里云 专有云企业版 V3.5.2 消息队列MQ专业版 运维指南 本文档为阿里云 专有云企业版 V3.5.2 消息队列MQ专业版 运维指南,旨在为用户提供操作指引和使用手册。该文档内容涵盖消息队列MQ专业版的使用、配置、维护...
阿里云 专有云Enterprise版 消息队列MQ专业版 V3.3.0 技术白皮书 知识点1:法律声明 * 阿里云提醒用户在阅读或使用本文档之前仔细阅读、充分理解本法律声明各条款的内容。 * 用户应当通过阿里云网站或阿里云提供的...
阿里云专有云企业版消息队列MQ铂金版用户指南 本文档为阿里云专有云企业版消息队列MQ铂金版的用户指南,旨在帮助用户快速上手使用消息队列MQ铂金版。该指南涵盖了消息队列MQ铂金版的基本概念、安装和配置、使用指南...
阿里云专有云Enterprise版消息队列MQ专业版技术白皮书 阿里云专有云Enterprise版消息队列MQ专业版技术白皮书是阿里云推出的消息队列产品,旨在帮助用户构建高性能、可靠的消息队列系统。本文档详细介绍了消息队列MQ...
阿里云专有云Enterprise版消息队列MQ铂金版V3.3.0产品简介 本文档是阿里云专有云Enterprise版消息队列MQ铂金版V3.3.0的产品简介,旨在为用户提供该产品的概况、功能特性、使用注意事项等信息,以帮助用户更好地理解...
阿里云专有云Enterprise版消息队列MQ铂金版V3.1.0验收指南是阿里云提供的一份详细的验收指南,旨在帮助用户正确地使用消息队列MQ铂金版产品。该指南涵盖了法律声明、通用约定、任务概述、消息队列MQ铂金版产品的使用...
"阿里云专有云Enterprise版消息队列MQ铂金版用户指南 V3.3.0" 本文档是阿里云专有云Enterprise版消息队列MQ铂金版的用户指南,版本号为V3.3.0,文档版本为20180312。该文档旨在帮助用户了解如何使用消息队列MQ铂金...
阿里云专有云企业版V3.6.0消息队列MQ铂金版技术白皮书 本文档是阿里云专有云企业版V3.6.0消息队列MQ铂金版技术白皮书,版本号为V3.6.0,文档版本为20180824。该文档提供了关于阿里云专有云企业版消息队列MQ铂金版的...
为了帮助用户全面掌握消息队列MQ铂金版的使用方法,本文档旨在作为官方用户指南,详细介绍了消息队列MQ铂金版的功能及操作流程。 ### 法律声明与通用约定 在开始使用消息队列MQ铂金版前,用户必须对文档的法律声明...
2. **创建队列管理器和队列**:在WebSphere MQ服务器上,你需要创建一个队列管理器以及用于发送和接收消息的队列。 3. **配置appconfig文件**:在C#项目中,你需要在appconfig文件中设置连接到MQ服务器的参数,包括...