特征 RabbitMQ RocketMQ Kafka
核心路由组件 Exchange(交换机)+ 多种路由模式(直连 / 扇出 / 主题 / 头) Topic + Tag(标签)(仅支持按标签路由) 无交换机,直接按 Topic+Partition 路由(无复杂路由模式)
消息存储单元 Queue(队列,无分区) Queue(逻辑队列)+ 队列分片(类似分区) Topic + Partition(分区,核心差异)
集群节点名称 Node Broker Broker
依赖的 “注册 / 管理” 组件 无(自身集群管理) NameServer(注册中心,管理 Broker) ZooKeeper/Kafka Controller(集群管理,非注册中心)
你说的 “生产队列” 显式 Queue(生产者发往交换机→路由到 Queue) 无显式队列,发往 Topic+Tag 无队列,直接发往 Topic 的 Partition


核心结论
RabbitMQ vs RocketMQ:
RabbitMQ 多了「Exchange 交换机」和「更丰富的路由模式」(4 种);
RocketMQ 用「Topic+Tag」替代交换机,路由模式更简单(仅按标签匹配),且多了「NameServer 注册中心」管理 Broker。
Kafka vs RabbitMQ:
Kafka 核心多了「Partition 分区」(RabbitMQ 的 Queue 无分区,并发能力弱);
Kafka 没有交换机和复杂路由,逻辑更简单;
两者都有集群节点(Kafka 叫 Broker,RabbitMQ 叫 Node),不是 Kafka 多的;
Kafka 没有 “生产队列”,Partition 承担了 RabbitMQ Queue 的存储作用,且并发能力更强。
易记的口诀
RabbitMQ:交换机路由,队列存消息,路由灵活但吞吐一般;
RocketMQ:Topic+Tag 路由,NameServer 注册,兼顾灵活与吞吐;
Kafka:Topic+Partition,无交换机,高吞吐海量存储,路由简单。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐