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

相关推荐
fengxin_rou11 小时前
黑马点评实战篇|第五篇:分布式锁-redission
java·数据库·redis·后端·缓存
tsyjjOvO11 小时前
Spring 核心知识点全解析(续)
java·后端·spring
shamalee12 小时前
Spring Security 新版本配置
java·后端·spring
理想小青年12 小时前
保姆级 OpenClaw 浏览器配置教程
后端
常利兵12 小时前
Spring Boot接口版本控制:解锁API优雅升级姿势
spring boot·后端·状态模式
我命由我1234512 小时前
Git 创建新分支并推送到远程仓库
java·服务器·git·后端·学习·java-ee·学习方法
常利兵12 小时前
Spring Boot文件访问安全:筑牢数据防线,让漏洞无处遁形
spring boot·后端·安全
C澒12 小时前
供应链产研交付提效:后端开发提效实战
后端·ai编程
xiaoye370812 小时前
Spring 动态代理源码深度分析
java·后端·spring
William_cl13 小时前
ASP.NET Identity 核心实战:注册 / 登录 / 角色管理(避坑指南 + 生活类比)
后端·asp.net·生活