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

相关推荐
追逐时光者22 分钟前
.NET 使用 MethodTimer 进行运行耗时统计提升代码的整洁性与可维护性!
后端·.net
你的人类朋友1 小时前
【Node.js】什么是Node.js
javascript·后端·node.js
David爱编程3 小时前
面试必问!线程生命周期与状态转换详解
java·后端
LKAI.3 小时前
传统方式部署(RuoYi-Cloud)微服务
java·linux·前端·后端·微服务·node.js·ruoyi
Victor3564 小时前
Redis(11)如何通过命令行操作Redis?
后端
Victor3564 小时前
Redis(10)如何连接到Redis服务器?
后端
他日若遂凌云志5 小时前
深入剖析 Fantasy 框架的消息设计与序列化机制:协同架构下的高效转换与场景适配
后端
快手技术5 小时前
快手Klear-Reasoner登顶8B模型榜首,GPPO算法双效强化稳定性与探索能力!
后端
二闹6 小时前
三个注解,到底该用哪一个?别再傻傻分不清了!
后端
用户49055816081256 小时前
当控制面更新一条 ACL 规则时,如何更新给数据面
后端