常用MQ的对比冷知识

16年阿里将RocketMQ捐赠给了开源软件基金会Apache,开源路走在了前面

 

 

各类消息中间件对比

ActiveMQ

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

特性

ActiveMQ支持多种语言和协议编写客户端:Java、C、C++、C#、Perl、Python、PHP

支持应用协议:OpenWire、Stomp REST、WS NotificationXMPP、AMQP

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

ActiveMQ还支持一些高级特性:虚拟主题、组合目的、镜像队列

 

 

RabbitMQ

RabbitMQ是一个开源的AMQP实现,服务端用Erlang语言编写。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

特性:

支持多种客户端,如Python、Ruby、.NET、Java、JMS、C、PHP、Actionscript等

AMQP的完整实现(vhost、Exchange、Binding、Routing Key等)

支持事务、发布确认

支持消息持久化

 

 

Kafka

Kafka是一个高吞吐量的分布式发布订阅消息系统,是一个分布式的、分区的、可靠的分布式日志存储服务。它公国一种独一无二的设计提供了一个消息系统的功能。

Kafka本身不是一个严格意义上的消息中间件,它本身是用来做日志储存的。所以kafka对消息的顺序要求的非常严格。

特性

Kafka通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于及时数以TB的消息存储也能够保持长时间的稳定性能。Kafka储存算法在持久化方面做得非常好,即使面对TB级别的消息(日志)数据也能给偶偶保持长时间的稳定。

高吞吐量:即使是非常普通的硬件。Kafka也可以支持每秒数百万的消息。

kafka支持分区(Partition)、消费者分组(Consumer Group)

posted @ 2020-06-15 10:42  Dmand  阅读(217)  评论(0编辑  收藏  举报