当前位置: 首页 > article >正文

RocketMQ的“三高”架构设计

RocketMQ的“三高”架构设计主要围绕高可用、高吞吐、高扩展三个维度展开分别解决服务不中断、性能不瓶颈、规模不设限的核心问题。1 高可用High Availability高可用的目标是确保部分组件故障时消息服务依然可用数据不丢失。1.1 服务高可用NameServer 集群化至少2个NameServer节点组成无状态集群节点间不通信无依赖关系任意节点故障不影响整体。Broker 多主架构所有节点对等均可读写Broker故障 → NameServer心跳超时 → 从路由表剔除客户端定时拉取路由表 → 感知到Broker下线自动切换到其他健康Broker → 业务无感知。1.2 数据高可用主从同步复制SYNC_FLUSH消息写入Master后同步复制到Slave返回成功前确保至少一个副本已落盘。1.3 DLedgerRaft协议RocketMQ 4.5引入DLedger基于Raft协议实现自动主从切换同时保证了服务高可用和数据高可用。Leader故障时集群中自动选举Leader切换时间秒级无需人工干预。数据同步复制到多数节点多数派确认机制节点宕机后数据不丢失保证消息强一致性。2 高吞吐High Throughput高吞吐的目标是在有限硬件资源下处理尽可能多的消息。2.1 存储层优化1. 顺序写入CommitLog所有消息按到达顺序追加写入CommitLog文件默认1GB/个充分利用磁盘顺序写的高性能接近内存随机写。2. 内存映射MappedByteBufferCommitLog通过mmap映射到进程虚拟内存写入操作直接写内存PageCache由OS异步刷盘减少内核态/用户态切换开销3. 零拷贝读取消费消息时使用sendfile系统调用数据从内核缓冲区直接拷贝到Socket缓冲区跳过用户态拷贝减少2次上下文切换4. 分离式索引结构组件作用特点CommitLog存储原始消息顺序写全局唯一ConsumeQueue按Topic-Queue的索引定长20字节/条可内存映射IndexFile按消息Key的哈希索引支持快速检索2.2 并发层优化1. 读写分离写入只写CommitLog顺序IO索引构建异步线程将CommitLog分发到ConsumeQueue读取从ConsumeQueue定位后再读CommitLog2. 批量处理消息批量发送/消费PageCache批量刷盘3. 队列级并行一个Topic对应多个MessageQueue防止消费者实例产生资源竞争不同MessageQueue可分布在不同的Broker并发读写天然负载均衡3 高扩展High Scalability高扩展的目标是系统能够通过增加节点线性提升容量。3.1 无状态组件水平扩展NameServer完全无状态节点间不通信增加节点即可扩展服务能力Proxy5.0无状态计算层不存储任何数据可独立弹性伸缩应对连接数波动3.2 Broker存储扩展Topic级分片一个Topic包含多个MessageQueueQueue分布在不同的Broker上增加Broker → 迁移Queue → 容量线性提升扩容流程新Broker启动注册到NameServer创建新Queue或将现有Queue迁移到新Broker客户端自动发现新路由开始写入新节点3.3 存储计算分离5.0传统架构计算存储耦合 → 扩容需同时扩展5.0架构Proxy计算 Broker存储分离- 计算层无状态按需弹性应对突发流量- 存储层有状态按容量弹性应对数据增长3.4 平滑扩缩容扩容新节点加入自动负载均衡缩容节点下线前先禁写开读待存量消息消费完再下线4 三高架构总结维度核心目标关键设计应对问题高可用服务不中断数据不丢NameServer集群、多主架构、多副本、DLedger节点/机房故障高吞吐海量消息快速处理顺序写CommitLog、mmap、零拷贝、索引分离性能瓶颈高扩展容量线性提升无状态组件、Topic分片、存算分离业务增长RocketMQ通过NameServer集群保障服务发现高可用多主架构多副本保障数据不丢顺序写零拷贝保障高吞吐存算分离分片机制保障水平扩展共同构成“三高”架构的基石。

相关文章:

RocketMQ的“三高”架构设计

RocketMQ的“三高”架构设计,主要围绕高可用、高吞吐、高扩展三个维度展开,分别解决服务不中断、性能不瓶颈、规模不设限的核心问题。1 高可用(High Availability)高可用的目标是确保部分组件故障时,消息服务依然可用&…...

如何用5个步骤构建企业级智能SQL工具?自然语言转SQL全攻略

如何用5个步骤构建企业级智能SQL工具?自然语言转SQL全攻略 【免费下载链接】sqlcoder SoTA LLM for converting natural language questions to SQL queries 项目地址: https://gitcode.com/gh_mirrors/sq/sqlcoder 在数据驱动决策的时代,自然语言…...

WeChatMsg终极指南:如何永久保存你的微信聊天记忆

WeChatMsg终极指南:如何永久保存你的微信聊天记忆 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg…...

GHelper工具:解决华硕笔记本性能控制难题的轻量化方案

GHelper工具:解决华硕笔记本性能控制难题的轻量化方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sc…...

lychee-rerank-mm环境部署:NVIDIA驱动470+、CUDA 12.x兼容性验证清单

lychee-rerank-mm环境部署:NVIDIA驱动470、CUDA 12.x兼容性验证清单 1. 项目概述与核心价值 lychee-rerank-mm是一个专为RTX 4090显卡优化的多模态重排序系统,基于Qwen2.5-VL架构和Lychee-rerank-mm模型构建。这个系统能够对批量图片与文本描述进行智能…...

Cursor Pro功能解锁技术解析与实战方案

Cursor Pro功能解锁技术解析与实战方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial request limit. / Too m…...

SRWE:打破Windows窗口限制的智能编辑器

SRWE:打破Windows窗口限制的智能编辑器 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE SRWE(Simple Runtime Window Editor)是一款专为Windows系统设计的实时窗口编辑工具&am…...

Phi-4-mini-reasoning效果展示:高精度数学题求解与逻辑推导实测

Phi-4-mini-reasoning效果展示:高精度数学题求解与逻辑推导实测 1. 模型核心能力概览 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型,在数学解题和逻辑分析方面展现出惊人的能力。与通用聊天模型不同,它专为多步推理和精确结论而…...

无源光网络-PON

一、无源光网络-PON简介1.1 无源光网络定义无源光网络(PON) 是一种点到多点的光纤接入技术,全程采用无源光器件(光分路器、光纤、光接头等,无电源、无电子电路)实现信号传输。1.2 核心要点1.2.1 特点无源&a…...

如何快速掌握Outfit字体:5个简单技巧打造专业级设计

如何快速掌握Outfit字体:5个简单技巧打造专业级设计 【免费下载链接】Outfit-Fonts The most on-brand typeface 项目地址: https://gitcode.com/gh_mirrors/ou/Outfit-Fonts Outfit字体是一款专业的开源无衬线字体,提供从Thin到Black的9种完整字…...

UABEA:解锁Unity资源编辑新维度的跨平台工具箱

UABEA:解锁Unity资源编辑新维度的跨平台工具箱 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 你是否曾想过深入Unity游戏内部,查看、编辑甚至重构其中的纹理、音频、字体等各类…...

三步掌握创意编程:p5.js Web Editor零门槛入门指南

三步掌握创意编程:p5.js Web Editor零门槛入门指南 【免费下载链接】p5.js-web-editor The p5.js Editor is a website for creating p5.js sketches, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and …...

LeetCode //C - 1002. Find Common Characters

1002. Find Common Characters Given a string array words, return an array of all characters that show up in all strings within the words (including duplicates). You may return the answer in any order. Example 1: Input: words [“bella”,“label”,“roll…...

快马AI助力:十分钟用开yun技术栈搭建微服务电商原型

最近尝试用开yun技术栈快速搭建微服务电商原型,发现结合InsCode(快马)平台的AI辅助功能,整个过程比想象中顺畅很多。记录下这个十分钟搭建原型的实践过程,特别适合需要快速验证想法的场景。 技术选型思路 开yun技术栈作为云原生领域的热门选…...

新手零障碍入门:用快马ai生成即开即用的python学习环境

最近在教朋友学Python,发现新手最头疼的不是语法本身,而是配置开发环境。特别是用PyCharm时,光是解释器设置就能劝退一大半人。刚好发现InsCode(快马)平台能一键生成开箱即用的Python学习项目,试了试简直拯救了教学现场。 为什么环…...

“AI 辅助数据库优化 - 从慢查询分析到索引自动推荐“

AI 辅助数据库优化 - 从慢查询分析到索引自动推荐 问题场景 数据库优化的常见挑战: 慢查询排查依赖 DBA 经验,门槛高索引创建盲目,有时反而降低性能SQL 改写凭感觉,缺乏系统方法执行计划看不懂,不知道优化方向性能问题…...

备战蓝桥杯效率翻倍:用快马平台一键生成算法测试脚手架

最近在备战蓝桥杯,发现很多时间都花在了重复搭建测试环境和编写输入输出代码上。为了提高效率,我用InsCode(快马)平台做了一个通用算法测试脚手架,分享下这个能提升备赛效率的实用工具。 项目设计思路 这个脚手架的核心目标是减少重复劳动。蓝…...

ObsPy终极指南:Python地震数据处理从入门到精通

ObsPy终极指南:Python地震数据处理从入门到精通 【免费下载链接】obspy ObsPy: A Python Toolbox for seismology/seismological observatories. 项目地址: https://gitcode.com/gh_mirrors/ob/obspy 如果你正在寻找一个强大的Python工具来处理地震数据&…...

基于redis实现限流逻辑

固定窗口计数器 在固定时间窗口内,记录请求次数,如果超过阈值就拒绝,否则放行。 优点:实现简单,性能极高实现方式:incr命令和expire命令缺点:临界突发问题,时间窗口固定,…...

小白程序员必看:收藏这份LangChain Agent开发指南,轻松入门大模型时代!

本文以LangChain框架为核心,详细介绍了如何开发AI Agent。内容涵盖模型调用、工具封装、会话记忆保存等基础功能,通过实操案例帮助读者理解Agent开发流程。LangChain简化了模型集成和工具调用,并提供了记忆模块支持多轮对话。文章适合想要入门…...

SOONet模型Keil5开发环境模拟:探索嵌入式设备视频事件检测前瞻

SOONet模型Keil5开发环境模拟:探索嵌入式设备视频事件检测前瞻 最近和几个做嵌入式开发的朋友聊天,大家聊到一个挺有意思的话题:现在AI模型越做越强,但好像都跑在云端或者高性能计算卡上。那些我们天天打交道的单片机、微控制器&…...

OpenClaw自动化运维助手:Qwen3.5-9B处理服务器告警与执行修复

OpenClaw自动化运维助手:Qwen3.5-9B处理服务器告警与执行修复 1. 从半夜被报警电话吵醒说起 凌晨3点17分,我的手机又一次疯狂震动起来。Zabbix监控系统发来警报:生产环境的Redis集群主节点内存使用率达到95%。强撑着睡意打开电脑&#xff0…...

Phi-4-mini-reasoning从零开始:CSDN GPU实例上免配置Web服务部署

Phi-4-mini-reasoning从零开始:CSDN GPU实例上免配置Web服务部署 1. 模型介绍 Phi-4-mini-reasoning 是一款专注于推理任务的文本生成模型,特别擅长处理需要多步逻辑分析的场景。与通用聊天模型不同,它更专注于"问题输入→推理过程→最…...

如何高效使用MRiLab数值磁共振成像仿真平台:面向开发者的创新应用指南

如何高效使用MRiLab数值磁共振成像仿真平台:面向开发者的创新应用指南 【免费下载链接】MRiLab A Numerical Magnetic Resonance Imaging (MRI) Simulation Platform 项目地址: https://gitcode.com/gh_mirrors/mr/MRiLab MRiLab是一款专业的数值磁共振成像仿…...

Citra模拟器全方位指南:从安装到优化的3DS游戏体验提升方案

Citra模拟器全方位指南:从安装到优化的3DS游戏体验提升方案 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra Citra作为一款开源高性能的Nintendo 3DS模拟器,为Windows、Linux和macOS用户提供…...

开源工具终极方案:3步解锁Cursor Pro全功能完全指南

开源工具终极方案:3步解锁Cursor Pro全功能完全指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial…...

免费开源音频转换工具fre:ac完整指南:跨平台多格式转换与CD抓取终极教程

免费开源音频转换工具fre:ac完整指南:跨平台多格式转换与CD抓取终极教程 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac fre:ac是一款功能强大的免费开源音频转换工具,支持Windo…...

MelonLoader终极指南:Unity游戏模组加载神器快速上手教程

MelonLoader终极指南:Unity游戏模组加载神器快速上手教程 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 你是否厌倦…...

【数据手册解读12】发光二极管-LED

发光二极管-LED 国星光电 LED IF:正向电流,...

Pixel Language Portal实战教程:使用WebSockets实现低延迟流式翻译响应

Pixel Language Portal实战教程:使用WebSockets实现低延迟流式翻译响应 1. 引言:当翻译遇上像素冒险 想象你正在玩一款16-bit像素风RPG游戏,每次对话选择都会触发实时翻译效果,文字像能量块一样在屏幕上流动。这正是Pixel Langu…...