常用消息中间件的比较-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 之我见

Kafka、RocketMQ、RabbitMQ的对比

关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ

MQ选型对比ActiveMQ,RabbitMQ,RocketMQ,Kafka 消息队列框架选哪个?

Pulsar与RocketmqKafkaInlong-TubeMQ,谁才是消息中间件的王者?