各消息队列对比

Kafka 起初是由 LinkedIn 公司采用 Scala 语言开发的一个分布式、多分区、多副本且基于 zookeeper 协调的分布式消息系统,现已捐献给 Apache 基金会。它是一种高吞吐量的分布式发布订阅消息系统,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如 ClouderaApache StormSparkFlink 等都支持与 Kafka 集成,号称一半以上世界500强都是它的客户

RocketMQ 是阿里开源的消息中间件,目前已经捐献个 Apache 基金会,它是由 Java 语言开发的,具备高吞吐量、高可用性、适合大规模分布式系统应用等特点,积极在Cloud-Native领域发力。

RabbitMQ 是采用 Erlang 语言实现的 AMQP 协议的消息中间件,最初起源于金融系统,用于在分布式系统中存储转发消息。

ActiveMQApache 出品的、采用 Java 语言编写的完全基于 JMS1.1 规范的面向消息的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。不过由于历史原因包袱太重,目前市场份额较小,其最新架构被命名为 Apollo,号称下一代 ActiveMQ

ZeroMQ 号称史上最快的消息队列,基于 C 语言开发。ZeroMQ 是一个消息处理队列库,可在多线程、多内核和主机之间弹性伸缩,虽然大多数时候我们习惯将其归入消息队列家族之中,但是其和前面的几款有着本质的区别,ZeroMQ 本身就不是一个消息队列服务器,更像是一组底层网络通讯库

 

功能性

Kafka

rabbitmq

zeromq

rocketmq

activemq

资料文档

丰富

丰富

较多

开发语言

Scala

Erlang

c

java

java

协议支持

私有(TCP)

AMQP

TCPUDP

私有

OpenWireSTOMPRESTXMPPAMQP

存储

内存、磁盘、数据库,支持大量堆积

内存、磁盘。支持少量堆积

消息发送端的内存或者磁盘中。不支持持久化

磁盘。支持大量堆积

内存、磁盘、数据库。支持少量堆积

事务支持

支持

支持

不支持

支持

 

支持

 

负载均衡

支持(分区单位)

支持不好

去中心化,不支持负载均衡

支持

支持

集群

Leader-Slave’无状态集群

简单集群,“主-备“

不支持集群

多对‘Master-Slave’ 模式,开源版本不支持自动

简单集群,“主-备“

管理界面

一般

一般

可用性

非常高(分布式)

高(主-从)

非常高(分布式)

高(主-从)

消息语义

at least onceat most once

at least onceat most once

重传机制

at least once

at least once

TPS

极大

比较大

极大

比较大

订阅方式

Topic为单位的订阅/发布

direct, topic ,Headersfanout

p2p

topic/messageTag正则匹配

点对点(p2p)、广播(发布-订阅)

顺序消息

支持

不支持

不支持

支持

不支持

消息确认

支持

支持

支持

支持

支持

消息回溯

支持按分区offset

不支持

不支持

支持按时间点

不支持

并发度

高(分区数量+消费者数量)

极高,Erlang语言

容灾

不支持,单独组件

不支持

不支持

不支持

不支持

加密

TLS/SSLSASL身份认证和权限控制

TLS/SSL

不确认

TLS/SSL

TLS/SSL

死信队列

不支持,业务通过connect实现

不支持

不支持

不支持

不支持

小型化

默认最少三台

不确认

不确认

 

不确认

 

不确认

 

流控

客户端、用户二种方式流控

内存、磁盘、积压三个维度进行流控

不支持

消费延时流控

生产者流控未落盘的数据量,默认1M

消费者未确认的消息数量

降级

调用链

不支持

不支持

不支持

不支持(商业版支持)

不确认

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值