高并发架构实战 Day 34

RabbitMQ 和 RocektMQ 属于业务消息类的消息队列,它们的特点是功能丰富、低延时、数据高可靠性、消息可追踪等等,同时也支持延时消息、优先级队列、消息过滤等功能特性。

RabbitMQ 发展较早,RocketMQ 则是新生的消息类的消息队列,从功能、集群化、稳定性、性能来看,RocketMQ 都是比 RabbitMQ 表现要好的。所以从某种意义上说,RocketMQ 是可以替代 RabbitMQ 的,但是因为 RabbitMQ 发展悠久、内核稳定以及能满足大部分的业务消息场景,所以目前用户群体也很大。国内的业务消息类的选型一般以 RocketMQ 优先,然后才是 RabbitMQ,而国外的业务消息类选型一般优先的是 RabbitMQ。

Kakfa 属于主打流场景的消息队列。它的特点是追求高吞吐、大流量,在功能上相对简单。不支持太多消息队列的功能,比如死信队列、延时消息、消息过滤等等。但它的核心竞争力就是非常稳定、吞吐性能非常高,能承担超大流量的业务场景。所以它是流场景下的消息管道的不二选择。 Pulsar 从定位上是消息和流一体的。目标就是满足所有消息和流的场景,希望同时满足功能和性能两方面的需求。所以 Pulsar 的内核会支持很多功能,在性能和吞吐方面也经常拿来与 Kakfa 做比较。但是因为其发展时间较短,目前还不是那么稳定,正处于快速发展阶段。

从个人选择来看,业务消息类的场景,我会推荐你优先选择 RocketMQ。主要原因是 RocketMQ 的性能高、社区活跃、集群化架构稳定、功能也非常丰富。而 RabbitMQ 当前架构存在缺点,单机存在瓶颈,在高 QPS 场景表现不是那么好,并且可能出现网络分区。所以从功能、性能、稳定性出发,我会优先推荐你使用 RocketMQ。 流方向的场景,我会推荐你优先选择 Kafka。主要原因是 Kafka 本身的性能和吞吐表现非常优越,延时和可靠性表现也不错。而 Pulsar 虽然主打的是替换 Kafka,并且功能丰富,架构设计理念先进,但是因为发展周期较短,很多功能还不稳定,当前阶段的现网运营表现并不是那么好。所以虽然 Kafka 存在扩容、Rebalance 方面的缺陷,但是从稳定性、性能出发,我还是会优先推荐你使用 Kafka。 在日常使用中,我们也可能会根据业务需求同时运营多款消息队列,比如 RocketMQ/RabbitMQ+Kafka。

相关推荐
牛奔6 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
想用offer打牌11 小时前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp
KYGALYX12 小时前
服务异步通信
开发语言·后端·微服务·ruby
掘了13 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
爬山算法13 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
Moment13 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
Cobyte14 小时前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc
程序员侠客行15 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
Honmaple15 小时前
QMD (Quarto Markdown) 搭建与使用指南
后端
PP东16 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable