ToB企服应用市场:ToB评测及商务社交产业平台
标题:
2024消息队列“四大天王”:Rabbit、Rocket、Kafka、Pulsar巅峰对决
[打印本页]
作者:
小秦哥
时间:
2024-9-17 21:29
标题:
2024消息队列“四大天王”:Rabbit、Rocket、Kafka、Pulsar巅峰对决
在选择合适的消息队列或消息传递系统时,了解各个系统的特点和上风非常重要。下面临 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 架构
焦点组件
:
生产者(Producer)
:发送消息到互换机。
互换机(Exchange)
:根据绑定规则路由消息到队列。主要范例有 direct、fanout、topic 和 headers。
队列(Queue)
:存储消息,消费者从队列中消费消息。
消费者(Consumer)
:从队列中获取并处理消息。
绑定(Binding)
:连接互换机和队列,界说路由规则。
架构特点
:
机动的消息路由机制,通过不同范例的互换机实现复杂的路由规则。
支持消息的长期化、事务和确认机制,确保消息可靠传递。
RocketMQ 架构
焦点组件
:
生产者(Producer)
:发送消息到主题(Topic)。
主题(Topic)
:按主题分类消息,每个主题有多个队列。
消息队列(Message Queue)
:存储消息,是主题的子集。
消费者(Consumer)
:从消息队列中消费消息。
名称服务器(Name Server)
:管理主题和消息队列的元数据,提供路由信息。
Broker
:存储消息并处理消息传递,管理消息队列。
架构特点
:
高可用性,通过多个 Broker 实现数据的复制和故障转移。
支持顺序消息和分布式事务,适合金融等需要严酷消息顺序和事务保证的场景。
Kafka 架构
焦点组件
:
生产者(Producer)
:将消息发送到主题的分区(Partition)。
主题(Topic)
:按主题分类消息,每个主题分为多个分区。
分区(Partition)
:消息按顺序存储在分区中,实现并行处理。
消费者(Consumer)
:从分区消费消息,可以指定消费位移(Offset)。
消费者组(Consumer Group)
:组内消费者协作消费分区,实现负载均衡。
Broker
:Kafka 服务器,负责存储消息并处理消息传递。
ZooKeeper
:管理集群的元数据和协调 Broker 的活动。
架构特点
:
高吞吐量,适合大规模实时数据流处理。
长期化存储和分区机制确保数据的可靠性和可扩展性。
Pulsar 架构
焦点组件
:
生产者(Producer)
:发送消息到主题或分区。
主题(Topic)
:按主题分类消息,可以分为多个分区。
分区(Partition)
:主题的子集,分区内消息有序存储。
消费者(Consumer)
:从主题或分区消费消息。
Broker
:处理客户端请求,协调消息的存储和传递。
BookKeeper(Bookies)
:提供长期化存储,将消息存储在多个 Bookie 中,确保数据可靠。
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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4