高并发架构实战 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。

相关推荐
uhakadotcom24 分钟前
MaxCompute Python UDF开发指南:从入门到精通
后端·面试·github
前端snow1 小时前
爬取数据利用node也行,你知道吗?
前端·javascript·后端
陈随易1 小时前
告别Node.js:2025年,我为何全面拥抱Bun
前端·后端·程序员
uhakadotcom1 小时前
双Token机制:安全与便利的完美结合
后端·面试·github
雷渊1 小时前
java版本管理工具-jenv
后端·架构
kakaZhou7192 小时前
karmada和vcluster联合作战 [1]
后端
平谷一勺2 小时前
golang中的结构体
开发语言·后端·golang·序列化·结构体·结构体嵌套·匿名结构体嵌套
菜菜的后端私房菜2 小时前
RocketMQ(十一):事务消息如何满足分布式一致性?
java·后端·rocketmq
梦尘啊2 小时前
存储引擎详解:LSM-Tree与B+树比较
数据库·后端
这里有鱼汤2 小时前
Python编程新境界:掌握函数式编程,让你的代码优雅到飞起
后端·python