Rocketmq的整体认识

前言

上文已经介绍了分布式消息队列的常见概念,从本文开始,将分多篇文章逐步对RocketMQ这款分布式消息队列的架构,功能,以及不同功能的源码实现原理进行分析。本文主要是介绍RocketMQ的功能,架构,加深对RocketMQ的认识。

RocketMQ是什么?

Rocketmq是由阿里巴巴2012年开源的分布式消息中间件,现在已经是apache顶级项目。他是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。它借鉴了kafka的实现,在kafka基础上丰富了更多的功能,并且提高了堆积消息能力和稳定性。Producer、Consumer、队列都可以分布式部署。Producer 向一些队列轮流发送消息,队列集合称为 Topic,Consumer 如果做广播消费,则一个 consumer实例消费这个 Topic 对应的所有队列,如果做集群消费,则多个 Consumer 实例平均消费这个队列集合。

Rocketmq的组成和整体架构

由producer,consumer,broker,namesever组成。其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息,nameserver负责topic路由信息管理。

各个组件的部署图:

各个组件的交互图:

总结:

1、每个组成部分都可以集群部署,具备横向扩展分布式能力

2、生产者,消费者,broker都需要和nameserver保持通信,nameserver之间不通信

Rocketmq的功能和特性

1、支持顺序消息,能够保证严格的消息顺序

2、提供丰富的消息拉取模式

3、高效的订阅者水平扩展能力

4、实时的消息订阅机制

5、亿级消息堆积能力

6、较少的依赖,自己实现了nameserver,不需要像kafka一样依赖zookeeper

Rocketmq的存储结构

commitLog是文件,用于存储消息内容。

ConsumerQueue是逻辑队列,消费者和生产者都是通过consumerQueue查找到具体的commitlog再操作存取消息的。

索引文件提供查询消息的能力,可以根据消息key,时间戳查询消息

Rocketmq和Kafka的比较

下面是官网给出的对比图。

相比Kafka,RocketMQ有更多的功能(ps: 这问题面试也经常被问到)

1、支持定时消息,定时消息使用场景比较多。

2、发送消息既支持同步也支持异步

3、支持广播消费模式

4、支持可视化管理台对消息topic,broker进行管理

5、更低的延迟

6、支持消息轨迹,可以在控制台查看消息轨迹

总结

本文主要介绍Rocket的组成,架构,和kafka的功能异同,从整体上对Rocketmq的认识。后续文章将对Rocketmq的功能特性进行介绍,并对实现原理进行分析。

相关推荐
LONGZETECH4 分钟前
汽车仿真教学平台支持在线理论考试吗?实操解析+行业案例
人工智能·科技·架构·数据挖掘·汽车·汽车仿真教学软件·新能源汽车仿真教学软件
木斯佳1 小时前
前端八股文面经大全:字节暑期前端一面(2026-04-21)·面经深度解析
前端·面试·校招·面经·实习
我叫黑大帅1 小时前
其实跨域问题是后端来解决的? CORS
后端·面试·go
li星野1 小时前
词嵌入技术、注意力机制、MoE架构、主流Transformer架构
深度学习·架构·transformer
掘金安东尼2 小时前
OpenMUSE 全面详解:非扩散Transformer文生图开源基座(对标GPT Image 2)
前端·javascript·面试
下次再写2 小时前
Java互联网大厂面试技术问答实战:涵盖Java SE、Spring Boot、微服务及多场景应用
java·数据库·缓存·面试·springboot·microservices·技术问答
千寻girling2 小时前
RabbitMQ 详细教程(38K字数)
java·后端·面试
山栀shanzhi2 小时前
在做直播时,I帧的间隔(GOP)一般是多少?
网络·c++·面试·ffmpeg
卷毛的技术笔记2 小时前
从“拆东墙补西墙”到“最终一致”:分布式事务在Spring Boot/Cloud中的破局之道
java·spring boot·分布式·后端·spring cloud·面试·rocketmq
志摩凛3 小时前
被产品经理逼疯后,我们重构了移动端上传组件——2026最新成果复盘
设计模式·架构