RocketMQ 和 Kafka 有什么区别?

news/2025/1/11 14:06:07/

目录

RocketMQ 是什么?

RocketMQ 和 Kafka 的区别

在架构上做减法

简化协调节点

简化分区

Kafka 的底层存储

RocketMQ 的底层存储

简化备份模型

在功能上做加法

消息过滤

支持事务

加入延时队列

加入死信队列

消息回溯

总结


来源:面试官:RocketMQ 和 Kafka 有什么区别?


作为一个程序员,假设你有 A、B 两个服务,A 服务发出消息后,不想让 B 服务立马处理到。而是要过半小时才让 B 服务处理到,该怎么实现?

这类延迟处理消息的场景非常常见,举个例子,比如我每天早上到公司后都会点个外卖,我希望外卖能在中午送过来,而不是立马送过来,这就需要将外卖消息经过延时后,再投递到商家侧。

图片

那么问题就来了,有没有优雅的解决方案?当然有,没有什么是加一层中间层不能解决的,如果有,那就再加一层。这次我们要加的中间层是消息队列 RocketMQ

图片

RocketMQ 是什么?

RocketMQ 是阿里自研的国产消息队列,目前已经是 Apache 的顶级项目。和其他消息队列一样,它接受来自生产者的消息,将消息分类,每一类是一个 topic消费者根据需要订阅 topic,获取里面的消息。

图片

是不是很像我们上篇文章里提到的消息队 Kafka,那么问题很自然就来了,既然都是消息队列,那它们之间有什么区别呢

RocketMQ 和 Kafka 的区别

RocketMQ 的架构其实参考了 Kafka 的设计思想,同时又在 Kafka 的基础上做了一些调整。

图片

这些调整,用一句话总结就是,"和 Kafka 相比,RocketMQ 在架构上做了减法,在功能上做了加法"。我们来看下这句话的含义。

在架构上做减法

我们来简单回顾下消息队列 Kafka 的架构。kakfa 也是通过多个 topic 对消息进行分类。

图片

  •  为了提升单个 topic 的并发性能,将单个 topic 拆为多个 partition

图片

  • 为了提升系统扩展性,将多个 partition 分别部署在不同 broker 上。

  • 为了提升系统的可用性,为 partition 加了多个副本。

  • 为了协调和管理 Kafka 集群的数据信息,引入Zookeeper作为协调节点。

图片

Kafka 已经是非常强的消息队列了,我们来看下 RocketMQ 在 Kafka 架构的基础上,还能玩出什么花样来。

简化协调节点

Zookeeper 在 Kafka 架构中


http://www.ppmy.cn/news/1562249.html

相关文章

JavaScript 数组拓展:方法与实例全解析

一、引言 在 JavaScript 编程的广袤天地里,数组犹如万能的基石,稳稳承载着各式各样的数据处理与复杂逻辑构建的重任。随着 JavaScript 语言与时俱进、迭代更新,其数组拓展方法更是如繁花绽放,日益丰富强大,仿若为开发…

QT 将单线程改为线程池 端口扫描3.5

接上篇QT实现 端口扫描暂停和继续功能 3-CSDN博客 多线程与线程池的关系 多线程是基础: 线程池是基于多线程的概念实现的。线程池内部使用多个线程来并发执行任务。线程池优化多线程: 线程池通过复用线程和管理任务来优化多线程的使用,减少了线程创建和销毁的开销…

Unity 人体切片三维可视化,可任意裁切切割。查看不同断层的图像。

Unity 人体切片三维可视化,真彩色,可任意裁切切割。查看不同断层的图像。 点击查看效果: 视频效果

css中的部分文字特性

文章目录 一、writing-mode二、word-break三、word-spacing;四、white-space五、省略 总结归纳常见文字特性,后续补充 一、writing-mode 默认horizontal-tbwriting-mode: vertical-lr; 从第一排开始竖着排,到底部再换第二排,文字与文字之间从…

iOS - Tagged Pointer

1. 基本结构 // Tagged Pointer 的内存布局 union TaggedPointer {uintptr_t bits; // 完整的指针值struct {uintptr_t data : 60; // 数据部分uintptr_t tag : 4; // 类型标记};// 扩展类型struct {uintptr_t extData : 52; // 扩展数据uintptr_t extTag : …

朝天椒USB服务器在银泰证券虚拟化超融合场景的应用案例

在数字化浪潮席卷金融行业的今天,银泰证券作为业内知名的金融机构,始终致力于提升业务运营效率与数据安全性。面对虚拟化超融合场景下各种认证U盾的管理挑战,银泰证券选择了朝天椒USB服务器作为其解决方案,成功实现了U盾在虚拟机中…

pytest 参数介绍

命令行参数描述常见使用案例-v / --verbose显示每个测试用例的详细信息,包括测试名称和状态pytest -v-s / --captureno禁用输出捕获,允许 print() 输出显示pytest -s-q / --quiet安静模式,减少输出,仅显示每个测试的通过/失败结果…

电脑硬盘系统迁移及问题处理

一、系统迁移准备 1、确认你的电脑主板是否支持安装两块硬盘,如电脑主板有多个M2硬盘接口,我们将新硬盘安装到主板上,原来的老硬盘安装在第二个接口上,主板只有一个M2接口的话可以使用移动硬盘盒。 2、新硬盘安装好后,我们进入原来的系统,在 此电脑–右键–管理–磁盘管…