热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

消息列队MQ的比较

2019独角兽企业重金招聘Python工程师标准1.Rabbitmqrabbitmq是使用Erlang编写的开源的消息列队,在AMQP基础上完整的,

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1.     Rabbitmq

rabbitmq是使用Erlang编写的开源的消息列队,在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,RabbitMQ,通过插件机制支持MQTT 3.1,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了一个(Broker)构架,这意味着消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都有很好的支持。

2.     Redis

redis是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。

3.     Activemq

ActiveMQ 是Apache下的一个子项目,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。

多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP

完全支持JMS1.1和J2EE 1.4规范(持久化,XA消息,事务)

对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性

通过了常见J2EE服务器(如 Geronimo,JBoss 4,GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上

支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA

支持通过JDBC和journal提供高速的消息持久化

从设计上保证了高性能的集群,客户端-服务器,点对点

支持Ajax

支持与Axis的整合

可以很容易的调用内嵌JMS provider,进行测试

4.     Jafka

Jafka 是一个高性能的跨语言分布式消息系统。Jafka已经开源,使用github托管。

Jafka是由Apache孵化的Kafka(由LinkedIn捐助给Apache)克隆而来。Jafka 1.0完整遵循Kafka 0.7的规范,几乎是Kafka的克隆版(有一些改进和调整)。

Jafka有几个吸引人的特性:

消息持久化非常快,服务端存储消息的开销为O(1),并且基于文件系统,能够持久化TB级的消息而不损失性能。

吞吐量很大。

完全的分布式系统,broker、producer、consumer都原生自动支持分布式。自动实现复杂均衡。

内核非常小,整个系统(包括服务端和客户端)只有一个272KB的jar包,内部机制也不复杂,适合进行内嵌或者二次开发。整个服务端加上依赖组件共3.5MB。

消息格式以及通信机制非常简单,适合进行跨语言开发。目前自带的Python 3.x的客户端支持发送消息和接收消息。

5.     Metamorphosis (MetaQ) : Kafkajava移植和改进版本

Metamorphosis (MetaQ) 是一个高性能、高可用、可扩展的分布式消息中间件,类似于LinkedIn的Kafka,具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景,在淘宝和支付宝有着广泛的应用,现已开源。

主要特点:

生产者、服务器和消费者都可分布

消息存储顺序写

性能极高,吞吐量大

支持消息顺序

支持本地和XA事务

客户端pull,随机读,利用sendfile系统调用,zero-copy ,批量拉数据

支持消费端事务

支持消息广播模式

支持异步发送消息

支持http协议

支持消息重试和recover

数据迁移、扩容对用户透明

消费状态保存在客户端

支持同步和异步复制两种HA

支持group commit


转:https://my.oschina.net/lwenhao/blog/1518374



推荐阅读
author-avatar
梅花七
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有