LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

消息队列“四大天王”:Rabbit、Rocket、Kafka、Pulsar巅峰对决

admin
2025年5月5日 23:30 本文热度 59

在选择合适的消息队列或消息传递系统时,了解各个系统的特点和优势非常重要。下面对 RabbitMQ、RocketMQ、Kafka 和 Pulsar 进行综合对比,涵盖架构、性能、可用性、适用场景等方面:

  • 排名

 
  • 对比

一、消息模型

1.1、RabbitMQ

基于交换机(Exchange)和队列(Queue)的灵活路由

  • 交换机(Exchange):消息发布到交换机,通过路由键(Routing Key)决定消息发送到哪个队列。

  • 队列(Queue):消息存储的地方,消费者从队列中获取消息。

  • 路由键(Routing Key):用于匹配消息和队列的键。

  • 绑定(Binding):连接交换机和队列,定义路由规则。

消息传递模式

  • Direct:消息通过精确匹配路由键发送到队列。

  • Fanout:消息广播到所有绑定的队列。

  • Topic:消息按模式匹配路由键发送到队列。

RocketMQ

基于主题(Topic)和消息队列的高可用、高吞吐量消息系统

  • 主题(Topic):消息按主题分类,每个主题可以有多个队列。

  • 消息队列(Message Queue):主题分为多个队列,消息存储在队列中。

消息传递模式

  • 点对点:消息直接发送到队列。

  • 发布/订阅:消息发布到主题,所有订阅该主题的消费者接收消息。

Kafka

高吞吐量的发布/订阅系统,基于主题和分区(Partition)

  • 主题(Topic):消息按主题分类,主题分为多个分区。

  • 分区(Partition):每个主题有多个分区,分区内消息有序存储。

消息传递模式

  • 发布/订阅:生产者发布消息到主题,消费者订阅主题分区。

  • 分区消费:消费者组内的消费者协作消费分区。

Pulsar

多租户、高可用的消息流平台,支持灵活的消息传递模式

  • 主题(Topic):消息按主题分类,主题可以分为多个分区。

  • 分区(Partition):主题分为多个分区,分区内消息有序存储。

消息传递模式

  • 发布/订阅:支持复杂订阅模式和消息路由。


产品架构

RabbitMQ 架构

核心组件

  1. 生产者(Producer):发送消息到交换机。

  2. 交换机(Exchange):根据绑定规则路由消息到队列。主要类型有 direct、fanout、topic 和 headers。

  3. 队列(Queue):存储消息,消费者从队列中消费消息。

  4. 消费者(Consumer):从队列中获取并处理消息。

  5. 绑定(Binding):连接交换机和队列,定义路由规则。

架构特点

  • 灵活的消息路由机制,通过不同类型的交换机实现复杂的路由规则。

  • 支持消息的持久化、事务和确认机制,确保消息可靠传递。

RocketMQ 架构

核心组件

  1. 生产者(Producer):发送消息到主题(Topic)。

  2. 主题(Topic):按主题分类消息,每个主题有多个队列。

  3. 消息队列(Message Queue):存储消息,是主题的子集。

  4. 消费者(Consumer):从消息队列中消费消息。

  5. 名称服务器(Name Server):管理主题和消息队列的元数据,提供路由信息。

  6. Broker:存储消息并处理消息传递,管理消息队列。

架构特点

  • 高可用性,通过多个 Broker 实现数据的复制和故障转移。

  • 支持顺序消息和分布式事务,适合金融等需要严格消息顺序和事务保证的场景。

Kafka 架构

核心组件

  1. 生产者(Producer):将消息发送到主题的分区(Partition)。

  2. 主题(Topic):按主题分类消息,每个主题分为多个分区。

  3. 分区(Partition):消息按顺序存储在分区中,实现并行处理。

  4. 消费者(Consumer):从分区消费消息,可以指定消费位移(Offset)。

  5. 消费者组(Consumer Group):组内消费者协作消费分区,实现负载均衡。

  6. Broker:Kafka 服务器,负责存储消息并处理消息传递。

  7. ZooKeeper:管理集群的元数据和协调 Broker 的活动。

架构特点

  • 高吞吐量,适合大规模实时数据流处理。

  • 持久化存储和分区机制确保数据的可靠性和可扩展性。

Pulsar 架构

核心组件

  1. 生产者(Producer):发送消息到主题或分区。

  2. 主题(Topic):按主题分类消息,可以分为多个分区。

  3. 分区(Partition):主题的子集,分区内消息有序存储。

  4. 消费者(Consumer):从主题或分区消费消息。

  5. Broker:处理客户端请求,协调消息的存储和传递。

  6. BookKeeper(Bookies):提供持久化存储,将消息存储在多个 Bookie 中,确保数据可靠。

  7. ZooKeeper:管理集群元数据,协调 Broker 和 BookKeeper 的活动。

架构特点

  • 多租户支持,适合复杂的多用户场景。

  • 高可用性和可扩展性,通过水平扩展 Broker 和 BookKeeper 节点实现。

  • 灵活的消息传递模式,支持独占、共享和故障转移订阅。

产品性能

吞吐量

图片来源于confluent.io

  • RabbitMQ:灵活性和可靠性较高,但吞吐量最低。

  • RocketMQ:高可用性和顺序消息支持,吞吐量次于 RabbitMQ。

  • Pulsar:多租户和分区支持,提供较高吞吐量。

  • Kafka:专为高吞吐量和低延迟设计,适合大规模数据流处理,吞吐量最高。

吞吐量从大到小的一般排名:

kafka->pulsar->rocketmq->rabbitmq

延迟

图片与表格来源于confluent.io

在低吞吐量的情况下,消息队列系统的响应时间会受到多种因素的影响,包括系统架构、消息大小、网络延迟等。响应时间从快到慢的一般排名:

rabbitmq->kafka->pulsar->rocketmq

而在高吞吐量的情况下,不同的消息队列系统的响应时间会受到它们设计和优化的影响。响应时间从快到慢的一般排名:

kafka->pulsar->rocketmq->rabbitmq


阅读原文:原文链接


该文章在 2025/5/6 10:57:30 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2025 ClickSun All Rights Reserved