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用的 |
本文对比了四种流行的消息中间件:ActiveMQ、RabbitMQ、RocketMQ和Kafka。ActiveMQ支持多种协议,适合Java环境;RabbitMQ基于Erlang,提供高性能和低延迟。RocketMQ在分布式事务和高可用性方面表现出色,而Kafka则专为大数据处理设计,提供10万级别的吞吐量和毫秒级的时效性。各消息中间件在语言支持、单机吞吐量、时效性和可用性上各有特点,数据存储和部署方式也有所不同。Kafka的集群部署使用Zookeeper,确保高可用性。
&spm=1001.2101.3001.5002&articleId=118636349&d=1&t=3&u=f7d88720c5b34797a950cf071255d90f)
8747

被折叠的 条评论
为什么被折叠?



