Apache Pulsar,RabbitMQ,RocketMQ 功能对比

Apache Pulsar,RabbitMQ,RocketMQ 功能对比

功能为度可以分为多个子维度,例如:优先级队列,延迟队列(定时消息),死信队列,事务消息,非持久化主题、消费重试,消息回溯,消息追踪,消息保留、消息生存时间、多租户,多协议支持,跨语言支持,流量控制,消息顺序性,安全机制(身份认证,权限控制),消息幂等性,多中心等等。

RabbitMQ(3.8.4)、RocketMQ(4.7.1)、Pulsar(2.6.1)这三款产品大都支持这些常见功能,值得注意的是:

  • RabbitMQ不支持延迟队列(定时消息)、消息过滤、消息回溯、消息保留。

  • RocketMQ不支持优先级队列、非持久化主题、消息生存时间、多租户、多中心。

  • Pulsar不支持事务消息(2020年10月底预计发布2.7.0版本包含预览版的事务消息功能)、优先级队列、消息过滤。

  • 另外,Pulsar原生支持多中心方案,称作Geo-replication,相比RabbitMQ的多中心方案(对集群、Federation 和Shovel进行组合使用),配置运维相对来说更加简单易用。
    具体功能对比:

RabbitMQ RocketMQ Apache Pulsar 功能介绍
版本 3.8.4 4.7.1 2.6.1
开发语言 Erlang Java Java
支持协议 AMQP,XMPP,SMTP,STOMP 自己定义的一套协议 1. 自行设计的二进制协议
2. 通过KoP(Kafka-on-Pulsar)兼容Kafka 应用程序和服务
3. 通过**AoP(即 AMQP on Pulsar)**使得RabbitMQ 应用程序可以利用 Pulsar 的特性
双机集群(HA)系统 master/slave模式,master提供服务,slave仅作备份 支持多master模式,多master多slave模式,异步复制模式,同步双写 如果一个 Broker 失败,Pulsar 会自动将其拥有的主题分区移动到群集中剩余的某一个可用 Broker 中。需要注意的是:由于 Broker 是无状态的,当发生 Topic 的迁移时,Pulsar 只是将所有权从一个 Broker 转移到另一个 Broker,在这个过程中,不会有任何数据复制发生。
同步发送 将一直阻塞消息,直到消息成功发布并返回由broker分配给producer的消息,
适用场景:重要通知消息、短信通知、短信营销系统等
异步发送 producer将消息放入一个阻塞队列并立即返回,
适用场景:响应时间敏感的业务场景。
单向发送 只发送消息,不等待服务器响应,只发送请求不等待应答。此方式发送消息的过程耗时非常短,一般在微秒级别。
适用于某些耗时非常短,但对可靠性要求并不高、不特别关心发送结果的场景,例如日志收集
消息压缩 Pulsar可以压缩producer在传输过程中发布的消息,有四种压缩格式可选:LZ4,ZLIB,ZSTD,SNAPPY
批量发送(Batching) 启用批处理后,producer将在单个请求中累积并发送一批消息
分块发送(Chunking) 启用Chunking后(chunkingEnabled = true),如果消息大小大于允许的最大发布有效负载大小,则producer会将原始消息拆分为分块消息,并将带有分块元数据的消息分别按顺序发布给broker。在broker,分块的消息以与普通消息相同的方式存储在托管ledger中。唯一的区别是,consumer需要缓冲已分块的消息,并在收集完所有已分块的消息后将它们组合为真实消息。
消息列表分割 RocketMQ一批消息的总大小不应超过4MB,若超过,则建议进行消息列表分割&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值