Kafka、rabbitmq及rocketmq的区别

本文从性能、数据可靠性、服务可用性和功能四个方面对比了Kafka、RabbitMQ和RocketMQ。Kafka以其高吞吐量适合大规模数据收集,RabbitMQ在功能上更丰富,RocketMQ则结合了两者优点并在阿里巴巴广泛应用。在数据可靠性方面,三者都有多副本机制。服务可用性上,Kafka和RocketMQ的分布式设计提供了高可用性。在确保消息不丢失的解决方案中,RabbitMQ提供事务和confirm机制,但事务会影响性能。
摘要由CSDN通过智能技术生成

Kafka采用拉取(pull)方式消费消息,吞吐量相对更高,适用于海量数据收集与传递场景,通常用于日志采集和集中分析。

RabbitMq在吞吐量方面略有逊色,但支持更多的消息队列功能。

RocketMQ出自 阿里公司的开源产品,用java语言实现。在设计时参考了Kafka,并且做出了自己的一些改进。在阿里集团被广泛应用于订单、交易充值、消息推送、日志流式处理、binglog分发等场景。

以下分别从性能、数据可靠性、服务可用性、功能等方面进行具体分析

性能:

QPS:吞吐量 Broker:服务器

消息中间件的性能主要衡量吞吐量,Kafka的吞吐量比RabbitMq要高出1~2个数量级,RabbitMq的单机QPS在万级别,Kafka的单机QPS能够达到百万级别。RocketMq单机写入TPS单实例约7万条/秒,单机部署3个Broker,可以跑到最高12万条/秒,消息大小10个字节,Kafka如果开启幂等、事务等功能,性能也会有所降低。

TPS:每秒的事务数量

幂等性:由于Producer在生产发送消息时,难免会重复发送消息。Producer进行retry时会产生重试机制,发送消息重复。而引入幂等性后,重复的消息只会生成一条有效的消息。

kafka的事务:与数据库的事务类似,Kafka中的事务属性是指一系列的Producer生产消息和消费消息提交Offsets的操作在一个事务中,即原子性操作,对应的结果是同时失败或者同时成功。操作数据库中的事务指一系列的增删改查,对Kafka来说&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值