消息的对比(ActiveMQ、RabbitMQ、RocketMQ、kafka)

activeMq:基本版本

rabbitMq:一般消息

rocketMq:分布式事务异步确保型

kakfa:数据量比较大

特性

ActiveMQ

RabbitMQ

RocketMQ

kafka

开发语言

java

erlang

java

scala

语言支持

目前是java及c++,其中c++不成熟

单机吞吐量

万级

万级

10万级

10万级

时效性

ms级

us级

ms级

ms级以内

可用性

高(主从架构)

高(主从架构)

非常高(分布式架构)

非常高(分布式架构)一个数据多个副本,少数机器宕机,不会丢失数据,不会导致不可用

功能特性

成熟的产品,在很多公司得到应用;有较多的文档;各种协议支持较好

基于erlang开发,所以并发能力很强,性能极其好,延时很低;管理界面较丰富

MQ功能比较完备,扩展性佳

只支持主要的MQ功能,像一些消息查询,消息回溯等功能没有提供,毕竟是为大数据准备的,在大数据领域应用广。

数据存储方式

a) kahaDB:文件共享,默认方式

b) JDBC:数据库共享

c) LevelDB:数据共享,本文使用方式

部署方式

1、默认的单机部署(kahadb) 

activeMQ的默认存储的单机方式,以本地kahadb文件的方式存储,所以性能指标完全依赖本地磁盘IO,不能提供高可用。

2、基于zookeeper的主从(levelDB Master/Slave)

优点: 

实现高可用和数据安全 

性能较好 

缺点: 

因为选举机制要超过半数,所以最少需要3台节点,才能实现高可用。 

3、基于共享数据库的主从(Shared JDBC Master/Slave) 

优点: 

实现高可用和数据安全 

简单灵活,2台节点就可以实现高可用 

缺点: 

稳定性依赖数据库 

性能依赖数据库

集群就有多master 模式、多master多slave异步复制模式、多 master多slave同步双写模式。多master多slave模式部署架构图

只是NameServer集群,在kafka中是用zookeeper代替,都是用来保存和发现master和slave用的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值