分布式消息服务ROCKETMQ版-与Kafka、RabbitMQ的差异
与Kafka、RabbitMQ的差异
功能项 |
RocketMQ |
Kafka |
RabbitMQ |
---|---|---|---|
优先级队列 |
不支持 |
不支持 |
支持。建议优先级大小设置在0-10之间。 |
延迟队列 |
支持 |
不支持 |
不支持 |
死信队列 |
支持 |
不支持 |
支持 |
消息重试 |
支持 |
不支持 |
不支持 |
消费模式 |
支持客户端主动拉取和服务端推送两种方式 |
客户端主动拉取 |
支持客户端主动拉取以及服务端推送两种模式 |
广播消费 |
支持 |
支持 |
支持 |
消息回溯 |
支持 |
支持。Kafka支持按照offset和timestamp两种维度进行消息回溯。 |
不支持。RabbitMQ中消息一旦被确认消费就会被标记删除。 |
消息堆积 |
支持 |
支持。考虑吞吐因素,Kafka的堆积效率比RabbitMQ总体上要高。 |
支持 |
持久化 |
支持 |
支持 |
支持 |
消息追踪 |
支持 |
不支持 |
不支持 |
消息过滤 |
支持 |
支持 |
不支持,但可以自行封装。 |
多租户 |
支持 |
支持 |
支持 |
多协议支持 |
兼容RocketMQ协议 |
只支持Kafka自定义协议。 |
RabbitMQ基于AMQP协议实现。 |
跨语言支持 |
支持多语言的客户端 |
采用Scala和Java编写,支持多种语言的客户端。 |
采用Erlang编写,支持多种语言的客户端。 |
流量控制 |
待规划 |
支持client、user和Topic级别,通过主动设置可将流控作用于生产者或消费者。 |
RabbitMQ的流控基于Credit-Based算法,是内部被动触发的保护机制,作用于生产者层面。 |
消息顺序性 |
单队列(queue)内有序 |
支持单分区(partition)级别的顺序性。 |
不支持。需要单线程发送、单线程消费并且不采用延迟队列、优先级队列等一些高级功能整体配合,才能实现消息有序。 |
安全机制 |
支持SSL认证 |
支持SSL、SASL身份认证和读写权限控制。 |
支持SSL认证 |
事务性消息 |
支持 |
支持 |
支持 |
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- 分布式消息服务有哪些_分布式消息服务哪个好_分布式消息-华为云
- RocketMQ是什么_RocketMQ介绍_分布式消息服务RocketMQ版
- 分布式消息服务优势_分布式消息服务_消息队列-华为云
- 分布式消息中间件的作用_分布式消息中间件_分布式消息-华为云
- 分布式消息中间件实战_分布式消息实战_分布式消息-华为云
- Kafka与其他消息队列的对比_什么是Kafka_分布式消息系统-华为云
- kafka是什么_kafka介绍_分布式消息服务Kafka版
- 分布式消息队列是什么_分布式消息队列好处_消息队列-华为云
- RocketMQ的架构_RocketMQ的消息模式_分布式消息RocketMQ-华为云