Skip to content
Go back

消息队列对比

Updated:
Edit
名称消息模型流处理事务消息顺序消息精确一次死信队列延时消息支持消息持久化/保留策略分层存储多租户支持性能可扩展性使用场景
RocketMQ点对点 + 发布订阅部分支持(RocketMQ Streams 轻量级 SDK 引擎 + Connect 集成外部 Flink 等)支持支持(严格分区有序,ShardingKey 保证同组有序)支持(事务 + 幂等)支持支持(18级固定延迟)支持不支持支持优秀优秀高吞吐、金融/电商、事务强一致
RabbitMQ点对点 + 发布订阅部分支持(Streams 插件提供 append-only 日志式流,3.9+ 原生,支持非破坏性消费)部分支持(Publisher Confirms + 事务机制)部分支持(单队列有序,多消费者易乱序)部分支持(至少一次 + 事务/幂等)支持(DLX,死信交换)部分支持(TTL + DLX 模拟任意延时)支持不支持支持(vhost)良好良好通用、复杂路由、传统企业集成
Kafka发布订阅(日志式)非常强(原生日志式 append-only,支持 Kafka Streams/Flink/Spark 等无缝集成)支持支持(分区内严格有序)支持(事务 + 幂等生产者)部分支持(需业务实现 DLQ 或 Dead Letter Topic)不支持(需消费者/业务层实现或外部工具)支持支持(KIP-405,原生成熟)支持(ACL + 资源隔离模拟)优秀优秀大数据流处理、事件溯源、日志平台
Pulsar点对点 + 发布订阅非常强(原生 BookKeeper + Pulsar Functions 轻量级处理 + 多订阅类型,支持 Key_Shared/Exclusive 顺序流)支持支持(分区/键有序,Sequence ID 保证)支持(事务 + 幂等)支持支持(任意时间延时,原生)支持支持(原生,最成熟/灵活)支持(内置多租户,租户/命名空间隔离)优秀优秀云原生、多租户、通用高性能、混合队列/流
NATS发布订阅部分支持(JetStream 提供持久化流 + 有序消费者 + 消费者组,支持重放/时间窗口)不支持支持(JetStream 有序消费者)部分支持(JetStream dedup + double ack 实现至少一次加强)部分支持(需业务实现/Advisory Events 或 Dead Letter Stream)部分支持(JetStream 定时交付)支持不支持支持(账户隔离,原生多账户/用户)优秀(极低延迟)优秀实时消息、微服务、轻量级、IoT
Redis发布订阅 + Streams 消费者组优秀(Streams 原生消费者组 + XREAD/XAUTOCLAIM/XGROUP 支持流处理、pending 消息重试)不支持支持(单 Stream 有序)部分支持(至少一次 + 需幂等)部分支持(Pending Entries + 手动 DLQ 实现)不支持(需 Lua 脚本/业务模拟)支持不支持支持(DB/命名空间隔离)极优秀(亚毫秒)良好低延迟缓存+消息、轻量微服务、实时排行
NSQ发布订阅部分支持(Topic/Channel 模型支持多路复用 + 再入队列,但非典型流引擎,无内置聚合/窗口)不支持部分支持(Channel 内消息顺序投递,但多通道/多消费者不保证全局序)不支持(至少一次,易重复)支持(自动重试 + requeue 到 dead-letter channel)不支持支持不支持不支持优秀优秀高吞吐、简单实时消息、分布式任务
ActiveMQ点对点 + 发布订阅部分支持(需结合外部 Camel/Flink 等实现流处理,无原生 append-only 流)支持部分支持(队列内有序,但多消费者/分布式易乱序)部分支持(事务 + 幂等)支持(DLQ,死信队列配置)部分支持(TTL 或 Scheduler 插件模拟)支持不支持支持(vhost)一般一般传统企业、JMS 兼容、通用场景

推荐


Edit
Share this post on:

Previous Post
Maven 常用操作
Next Post
GoGo Protobuf