消息队列MQ

常见的企业级MQ服务器

1. RabbitMQ负载均衡

是使用Erlang编写的一个开源的消息队列,自己支持不少的协议:AMQP,XMPP, SMTP, STOMP。框架

优势: 也正是如此,使的它变的很是重量级,更适合于企业级的开发。同时实现了一个代理(Broker)构架,这意味着消息在发送到客户端以前能够在中央节点上排队。对路由(Routing),负载均衡(Load balance)或者数据持久化都有很好的支持。分布式

缺点: 它的可扩展性差,速度较慢,由于中央节点增长了延迟,消息封装后也比较大。oop

2. ZeroMQ性能

ZeroMQ是一个很是轻量级的消息系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中常常能够发现它。学习

优势:号称最快的消息队列系统,尤为针对大吞吐量的需求场景。ZeroMQ可以实现RabbitMQ不擅长的高级/复杂的队列。代理

缺点: 与RabbitMQ相比,ZeroMQ支持许多高级消息场景,可是你必须实现ZeroMQ框架中的各个块(好比Socket或Device等)。ZeroMQ很是灵活,可是你必须学习它的80页的手册(若是你要写一个分布式系统,必定要阅读它)。日志

应用:Twitter的Storm中使用ZeroMQ做为数据流的传输。orm

3. ActiveMQ

ActiveMQ居于二者之间,相似于ZemoMQ,它能够部署于代理模式和P2P模式。相似于RabbitMQ,它易于实现高级场景,并且只需付出低消耗。它被誉为消息中间件的“瑞士军刀”。

ActiveMQ的下一代产品为Apollo。

4. Jafka/Kafka

Kafka是Apache下的一个子项目,是一个高性能跨语言分布式Publish/Subscribe消息队列系统,而Jafka是在Kafka之上孵化而来的,即Kafka的一个升级版。具备如下特性:快速持久化,能够在O(1)的系统开销下进行消息持久化;高吞吐,在一台普通的服务器上既能够达到10W/s的吞吐速率;彻底的分布式系统,Broker、Producer、Consumer都原生自动支持分布式,自动实现复杂均衡;支持Hadoop数据并行加载,对于像Hadoop的同样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka经过Hadoop的并行加载机制来统一了在线和离线的消息处理,这一点也是本课题所研究系统所看重的。Apache Kafka相对于ActiveMQ是一个很是轻量级的消息系统,除了性能很是好以外,仍是一个工做良好的分布式系统。

99. 其余MQ

Redis(也可用做消息组件)、HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS

相关文章
相关标签/搜索