论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
云原生
›
RocketMQ的运行架构
RocketMQ的运行架构
金歌
论坛元老
|
2025-4-27 20:42:09
|
显示全部楼层
|
阅读模式
楼主
主题
1814
|
帖子
1814
|
积分
5442
RocketMQ 是一款高性能、高可靠的分布式消息中心件,其运行架构设计为分布式、可扩展、高可用的模式。以下是 RocketMQ 的核心运行架构及组件说明:
1. 核心组件
RocketMQ 的架构重要由以下四个核心组件构成:
(1) NameServer
角色
:轻量级的服务发现与路由管理组件(无状态,节点间不通讯)。
功能
:
管理 Broker 的注册与心跳检测,维护 Topic 与 Broker 的路由关系。
为 Producer 和 Consumer 提供 Topic 的路由信息查询。
特点
:
多个 NameServer 实例组成集群,制止单点故障。
Broker 启动时向全部 NameServer 注册,并定时发送心跳。
(2) Broker
角色
:消息存储与传输的核心节点,负责消息的长期化、投递和查询。
功能
:
消息存储
:接纳顺序写盘(Commit Log)和索引(Consume Queue)结合的方式,保证高性能。
主从架构
:
Master
:处理读写哀求,支持同步/异步复制数据到 Slave。
Slave
:备份数据,仅处理读哀求(如消耗掉队时的消息拉取)。
支持事务消息、延伸消息、重试队列等功能。
特点
:
通过 Broker 集群实现水平扩展和高可用。
每个 Topic 分别为多个队列(Queue),分散到不同 Broker。
(3) Producer
角色
:消息生产者,向 Broker 发送消息。
功能
:
根据 NameServer 提供的路由信息选择目标 Broker 和 Queue。
支持同步、异步、单向发送模式。
支持消息发送重试机制。
特点
:
支持消息 Sharding(如按 Key 哈希选择 Queue)。
可通过事务消息保证分布式事务的最终一致性。
(4) Consumer
角色
:消息消耗者,从 Broker 拉取消息并处理。
功能
:
根据消耗模式(集群消耗或广播消耗)订阅消息。
支持 Push 模式(长轮询)和 Pull 模式。
维护消耗进度(Offset),支持顺序消耗。
特点
:
消耗者组(Consumer Group)内负载平衡,组内消耗者分摊 Queue。
消耗失败时触发重试机制,最终进入死信队列(DLQ)。
2. 消息流转流程
启动与注册
:
Broker 启动时向全部 NameServer 注册。
Producer/Consumer 启动时从 NameServer 获取路由信息。
消息发送
:
Producer 根据路由信息选择 Broker 和 Queue,发送消息到 Broker。
Broker 将消息写入 Commit Log,并天生索引(Consume Queue)。
消息消耗
:
Consumer 从 Broker 拉取消息,处理成功后提交 Offset。
若消耗失败,消息进入重试队列,多次失败后进入死信队列。
3. 高可用机制
Broker 主从同步
:
同步复制(Master-Slave 数据强一致)或异步复制(高性能)。
Master 故障时,Slave 可切换为新的 Master(需人工或自动触发)。
NameServer 集群
:多节点摆设,无状态设计,任一节点故障不影响服务。
消息长期化
:消息写入磁盘,防止数据丢失。
4. 扩展性与负载平衡
Topic 分片
:将 Topic 分别为多个 Queue,分散到不同 Broker。
消耗者负载平衡
:同一 Consumer Group 内的消耗者分摊 Queue。
Broker 集群扩展
:通过增加 Broker 节点提升吞吐量。
5.容错机制
自动重试机制(消息发送/消耗):
故障broker转移
消耗者自动重新平衡队列分配
5. 特别功能支持
事务消息
:通过两阶段提交(半消息 + 事务状态回查)实现分布式事务。
顺序消息
:通过锁定特定 Queue 保证消息顺序。
延伸消息
:支持预设延伸级别,消息定时投递。
消息过滤
:基于 Tag 或 SQL 表达式过滤消息。
6. 典范摆设架构
[Producer] --> [NameServer Cluster]
↑ ↓ ↖
[Broker Master] ←→ [Broker Slave]
↙ ↓ ↘
[Consumer] --> [NameServer Cluster]
复制代码
总结
RocketMQ 的架构通过 NameServer 实现解耦,Broker 主从设计保障高可用,生产者与消耗者的分布式摆设支持水平扩展。其高性能、可靠性和丰富的功能(如事务、顺序消息)使其实用于电商、金融等对消息一致性要求高的场景。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
金歌
论坛元老
这个人很懒什么都没写!
楼主热帖
iOS 集成WebRTC相关知识点总结 ...
SQL Server 2014完全卸载与SQL Server ...
贩卖和售前,如何与**商一起“玩耍”? ...
白鲸开源 DataOps 平台加速数据分析和 ...
iOS直播/游戏怎么利用特殊音效制造娱乐 ...
.NET ORM框架HiSql实战-第一章-集成HiS ...
查漏补缺——路由显示的是http://local ...
【docker专栏6】详解docker容器状态转 ...
一个工作薄中快速新建多个数据表 ...
缓存穿透,缓存雪崩,缓存击穿 ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
.Net
边缘计算
快速回复
返回顶部
返回列表