常用消息中间件的比较-rocketmq,kafka,activemq,rabbitmq
Posted 软件架构之禅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用消息中间件的比较-rocketmq,kafka,activemq,rabbitmq相关的知识,希望对你有一定的参考价值。
1.activemq
activemq是Apache出品的,完全支持一个完全支持JMS1.1和J2EE 1.4规范的框架.
⒈ 多种语言和协议编写客户端。语言: Java,C,C++,C#,Ruby,Perl,Python,php。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
⒉ 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
⒊ 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去
4.支持通过JDBC和journal提供高速的消息持久化
5.不适用于上千个队列的应用场景
2.rabbitmq
RabbitMQ是AMQP协议领先的一个实现,它实现了代理(Broker)架构
1.结合erlang语言本身的并发优势,性能较好,但是不利于做二次开发和维护
2.消息在发送到客户端之前可以在中央节点上排队。此特性使得RabbitMQ易于使用和部署,适宜于很多场景如路由、负载均衡或消息持久化等,用消息队列只需几行代码即可搞定。但是,这使得它的可扩展性差,速度较慢,因为中央节点增加了延迟,消息封装后也比较大
3.支持持久化消息
3.rocketmq
rocketmq是阿里使用的开源的分布式消息系统,支持分布式
1.能保证消息的顺序
2.提供丰富的消息拉取模式
3.亿级消息堆积能力
4.同样支持持久化消息
5.部署由一个 命名服务(nameserver)和一个代理(broker)组成,支持在broker端对消息进行过滤
6.高可用,可以支撑淘宝的双十一流量
4.kafka
kafka的设计初衷就是为了统计日志
1.吞吐量大,即使是非常普通的硬件Kafka也可以支持每秒数百万的消息
2.支持分布式
3.可靠性较前面的稍弱(少量丢失消息)
以上是关于常用消息中间件的比较-rocketmq,kafka,activemq,rabbitmq的主要内容,如果未能解决你的问题,请参考以下文章
MQ概览:ActiveMQ,Kafka,MetaMQ,RocketMQ 消息中间件使用场景
开发者说:消息队列 Kafka 和 RocketMQ 之我见
关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ