Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

Kafka、ActiveMQ、RabbitMQ、RocketMQ 有

什么优缺点?

ActiveM

Q

RabbitM

Q

RocketM

Q

Kafka

ZeroMQ

单机吞吐


RabbitM Q低

2.6w/s(消息做持久化)

11.6w/s

17.3w/s

29w/s

开发语言

Java

Erlang

Java

Scala/Jav

a

C

主要维护

Apache

Mozilla/S

pring

Alibaba

Apache

iMatix,创始人已去世

成熟度

成熟

成熟

开源版本

不够成熟

比较成熟

只有C、PHP等版本成熟

订阅形式

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

提供了4种:
direct, topic

基于
topic/me ssageTag以及按照

基于topic以及按照topic进行正则匹配

点对点

(p2p)

,Headers和
fanout。fanout就是广播模式

消息类
型、属性进行正则匹配的发布订阅模式

的发布订

阅模式

持久化

支持少量

堆积

支持少量

堆积

支持大量

堆积

支持大量

堆积

不支持

顺序消息

不支持

不支持

支持

支持

不支持

性能稳定

一般

较差

很好

集群方式

支持简单集群模
式,比
如’主-
备’,对高级集群模式支持不好。

支持简单集群,'复制’模
式,对高级集群模式支持不好。

常用 多
对’Mast er-
Slave’ 模式,开源
版本需手
动切换
Slave变成Master

天然
的‘Lead er-
Slave’无状态集
群,每台
服务器既
是Master也是Slave

不支持

管理界面

一般

较好

一般

综上,各种对比之后,有如下建议:
一般的业务系统要引入 MQ,最早大家都用 ActiveMQ,但是现在确实大家用的不多了,没经过大规模吞吐量场景的验证,社区也不是很活跃,所以大家还是算了吧,我个人不推荐用这个了;
后来大家开始用 RabbitMQ,但是确实 erlang 语言阻止了大量的 Java 工程师去深入研究和掌控它,对公司而言,几乎处于不可控的状态,但是确实人家是开源的,比较稳定的支持,活跃度也高;
不过现在确实越来越多的公司会去用 RocketMQ,确实很不错,毕竟是阿里出品,但社区可能有突然黄掉的风险(目前 RocketMQ 已捐给 Apache,但 GitHub 上的活跃度其实不算高)对自己公司技术实力有绝对自信的,推荐用 RocketMQ,否则回去老老实实用 RabbitMQ 吧,人家有活跃的开源社区,绝对不会黄。

所以中小型公司,技术实力较为一般,技术挑战不是特别高,用 RabbitMQ 是不错的选择;大型公司,基础架构研发实力较强,用 RocketMQ 是很好的选择。

如果是大数据领域的实时计算、日志采集等场景,用 Kafka 是业内标准的,绝对没问题,社区活跃度很高,绝对不会黄,何况几乎是全世界这个领域的事实性规范。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知一NN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值