getfromcode后端开发

MQ大牛成长课- -从0到1手写分布式消息队列中间件

这门课的主题很明确:不是教你怎样用 RabbitMQ、Kafka 或 RocketMQ 发几条消息,而是把消息队列拆开,从存储层开始,自己实现一套能跑起来的分布式消息中间件。对已经会调 API、但说不清 broker 内部到底发生什么的开发者来说,这种"反向实现"的路径比看文档有效得多。 先看清它的

单课价¥29.90新品 上架
会员价 ¥0开通会员,全站课程无限下载套餐详情
12 人关注 更新于 2026-09-23 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

购买方式开通会员 · 全站免费下单课购买 · 仅本课

支付成功后自动显示网盘下载链接;链接失效可联系客服免费补链,永久有效。

正版保障 极速发货 售后无忧

这门课的主题很明确:不是教你怎样用 RabbitMQ、Kafka 或 RocketMQ 发几条消息,而是把消息队列拆开,从存储层开始,自己实现一套能跑起来的分布式消息中间件。对已经会调 API、但说不清 broker 内部到底发生什么的开发者来说,这种"反向实现"的路径比看文档有效得多。

先看清它的技术落点

课程的核心章节落在 commitLog 的设计与实现上,这是消息中间件存储层最基础也最容易写错的部分。它没有一上来就谈集群、谈高可用,而是先把"一条消息以什么结构落盘""传统文件 IO 读写为什么在消息场景下会拖后腿""顺序写和随机写的差距从哪来"这些底层问题讲透,再往上叠投递 offset 的更新机制。这种从存储向上生长的组织方式,决定了它更适合拿来对照实践,而不是当作概念速览。

需要提前说明的是,这类课程的价值不在"看会",而在"写会"。消息存储结构的设计、文件映射的选择、offset 刷盘时机,这些决策点如果只是听讲,很容易产生"我懂了"的错觉;真正自己敲一遍,才会碰到页缓存、脏页回写、消费位点与存储位点不一致等一堆现实问题。所以下文按可复用模块和动手顺序来梳理,而不是按视频章节复述。

可以拆出来复用的几个模块

  • 存储结构定义:消息如何在 commitLog 中定长/变长排布,索引与实体数据怎么分离。这套结构换成日志系统、事件溯源、CDC 管道同样能借鉴。
  • 文件 IO 读写策略:传统读写与内存映射的取舍,在什么数据量级、什么刷盘要求下该选哪种。这是任何高吞吐写入场景都会遇到的问题。
  • offset 与位点管理:投递 offset 如何更新、消费位点如何持久化、重启后从哪里续读。位点管理写对了,消费语义(至少一次、至多一次)才有讨论的基础。
  • 消息分派与处理链路:消息从存储被取出到投递给消费者的路径,是理解推拉模型差异的实操入口。

把这些模块单独拎出来的意义在于:你不一定真要造一个 MQ,但消息存储、位点管理、顺序写优化这些能力,在订单流水、埋点采集、任务队列等场景里都是直接可迁移的。

建议的动手顺序

不要按视频顺序被动跟着敲,先给自己定一条主线:先让一条消息能写进文件再读出来,跑通最小闭环;然后加上存储结构,让多条消息能被区分;接着引入 offset,让消费能记录进度;最后才是分派机制和分布式相关的部分。每一层都先自己想一遍设计,再对照课程实现,差异往往就是最值得记的笔记。

配套源码在这个过程中的用法是"对照"而非"抄写"。建议把参考实现放在一边,遇到卡壳的点(比如刷盘策略怎么定、索引怎么组织)再去比对它为什么这样选,顺带想清楚换一种做法会付出什么代价。这种来回比对,比一次性读完源码的收获大得多。

适合谁,以及怎样用效率最高

如果你写过业务代码但没碰过中间件内核,或者用过 MQ 却答不上"消息存在哪、位点怎么记",这门课能补上这块空缺。反过来,如果你只是想要一份"MQ 选型指南",它并不对口。

高效的使用方式是把视频当索引、把源码当主体、把自己的实现当验收标准。每学完一个模块,合上资料,从零写一遍该模块并让它通过你的测试用例;写不出来,说明理解还停在表面。分布式消息队列的复杂度不在概念多,而在每一层的边界条件多,只有自己踩过,才算真的拿到手。

mksz821-MQ大牛成长课- -从0到1手写分布式消息队列中间件

深入理解分布式消息队列原理与实战

编辑点评

从零开始,手写分布式消息队列中间件,深入理解消息存储、消息分派、消息处理等核心机制。

⭐ 编辑推荐

本课程带你从零开始,手写分布式消息队列中间件,深入理解消息存储、消息分派、消息处理等核心机制,掌握消息队列的原理与实战。

✨ 课程亮点

✦手写分布式消息队列
✦深入理解消息队列原理
✦实战项目驱动学习

课程目录

第4章 【手写篇 - 第一步】 数据存储核心 - commitLog设计与实战20 集
  • 4-3 消息原始数据存储结构讲解【更多精选‖公众号:CunWorknotes】 .mp4 [5.4 MB]
  • 4-4 操作系统原理之 - 传统文件IO读写介绍【不易整理‖请关注:CunWorkNoteS】.mp4 [23.4 MB]
  • 4-17 消息投递offset更新机制的实现.mp4 [51.2 MB]
  • 4-14 消息内容结构体设计【资源精选‖更多关注:CunworkNotes】.mp4 [14.7 MB]
  • 4-8 如何实现mq消息的顺序写入【更多精选‖公众号:CunWorknotes】 .mp4 [28.9 MB]
  • 4-7 基于mmap的读写工具封装(三)mmap工具的效果验证.mp4 [24.1 MB]
  • 4-6 基于mmap的读写工具封装(二)mmap的内存释放讲解.mp4 [26.1 MB]
  • 4-11 Broker的启动类设计.mp4 [43.1 MB]
  • 4-18 消息写入的配置属性同步更新 (1).mp4 [33.3 MB]
  • 4-13 如何获取最新写入的commitLog文件.mp4 [68.0 MB]
  • 4-16 commitlog文件剩余空间检测机制.mp4 [48.1 MB]
  • 4-9 mq消息存储配置的管理.mp4 [34.4 MB]
  • 4-2 代码仓库介绍.mp4 [3.4 MB]
  • 4-12 commitLog写入逻辑细节分析.mp4 [22.7 MB]
  • 4-15 消息结构体封装的实践.mp4 [39.2 MB]
  • 4-5 基于mmap的读写工具封装(一)基础功能的实现.mp4 [27.7 MB]
  • 4-18 消息写入的配置属性同步更新 (2).mp4 [102.3 MB]
  • 4-19 多线程场景下mmap的读写如何优化.mp4 [65.2 MB]
  • 4-10 mq基础配置的封装.mp4 [30.7 MB]
  • 4-20 commitlog追加写入数据测试.mp4 [16.3 MB]
第1章 课程导学介绍2 集
  • 1-2 课程详细内容安排【更多精选‖公众号:CunWorknotes】 .mp4 [69.5 MB]
  • 1-1 手写消息中间件--课程导学.mp4 [79.0 MB]
第3章 消息中间件架构设计篇9 集
  • 3-10 本章回顾【更多精选‖公众号:CunWorknotes】 .mp4 [4.2 MB]
  • 3-8 复杂消息功能思考(三)事务消息是怎么一回事?.mp4 [17.3 MB]
  • 3-6 复杂消息功能思考(一)消息重试机制如何实现?.mp4 [20.7 MB]
  • 3-3 ConsumerQueue介绍-面对多消费者,消息的分配要如何设计.mp4 [163.7 MB]
  • 3-2 CommitLog介绍-MQ的消息都存在哪儿?.mp4 [128.2 MB]
  • 3-9 复杂消息功能思考(四)内存映射自扩容设计思路.mp4 [9.0 MB]
  • 3-5 消息集群架构思考(二)多节点存储的架构要如何实现?.mp4 [18.1 MB]
  • 3-7 复杂消息功能思考(二)延迟消息要怎么做?.mp4 [16.4 MB]
  • 3-4 消息集群架构思考(一)为什么消息队列还需用到注册中心?.mp4 [12.1 MB]
第13章 【手写篇 - 第十步】基于消息队列综合实战4 集
  • 13-2 MQ多泳道环境的实现.mp4 [19.8 MB]
  • 13-4 本章回顾.mp4 [2.9 MB]
  • 13-1 本章介绍.mp4 [1.7 MB]
  • 13-3 Kafka和实时计算.mp4 [12.4 MB]
第2章 深入常用消息队列原理4 集
  • 2-2 RocketMq架构原理深入剖析.mp4 [452.6 MB]
  • 2-3 Kafka架构原理深入剖析.mp4 [330.5 MB]
  • 2-4 三种消息队列对比剖析.mp4 [98.3 MB]
  • 2-1 RabbitMq架构原理深入剖析.mp4 [292.5 MB]
第12章 【手写篇 - 第九步】可视化管理控制台设计与实战16 集
  • 12-2 基础控制台的接口开发.mp4 [4.1 MB]
  • 12-3 Broker数据的上报实现【整理不易‖记得关注:CunWorKNotes】.mp4 [36.9 MB]
  • 12-1 本章介绍.mp4 [1.5 MB]
  • 12-6 本章介绍.mp4 [1.1 MB]
  • 12-4 控制台的基础开发思路梳理.mp4 [39.2 MB]
  • 12-5 控制台效果演示.mp4 [4.7 MB]
第14章 课程回顾与常见面试题剖析2 集
  • 14-2 课程回顾.mp4 [6.3 MB]
  • 14-1 本章介绍.mp4 [3.9 MB]
第9章 【手写篇 - 第六步】复杂消息处理(一) - 消息重试功能的设计与实现12 集
  • 9-4 Consumer消息重试链路在时间轮中的运作细节梳理【公重号:CunWorkNotes】.mp4 [26.2 MB]
  • 9-5 重试消息的存储效果验证.mp4 [26.1 MB]
  • 9-10 时间轮事件事件回调通知.mp4 [25.6 MB]
  • 9-7 时间轮组件的实现(二).mp4 [30.8 MB]
  • 9-2 消息重试设计思路实现.mp4 [40.1 MB]
  • 9-9 多极时间轮的切换验证.mp4 [21.5 MB]
  • 9-12 重试主题的自动创建.mp4 [34.0 MB]
  • 9-6 时间轮组件的实现(一).mp4 [47.3 MB]
  • 9-3 消息重试Netty请求链路打通.mp4 [46.7 MB]
  • 9-13 消息重试队列推送和消费的实现.mp4 [34.2 MB]
  • 9-11 重试监听器回调.mp4 [30.7 MB]
  • 9-8 时间轮组件的效果验证.mp4 [7.5 MB]
第5章 【手写篇 - 第二步】消息分派的核心 - ConsumeQueue分析与实战13 集
  • 5-13 consumequeue的offset更新实现【公重号:CunWorkNotes】.mp4 [63.5 MB]
  • 5-9 consumequeue文件的映射写入和offset更新.mp4 [40.4 MB]
  • 5-14 多消费者消费效果验证.mp4 [23.8 MB]
  • 5-7 【实战】ConsumeQueue存储 预热链路逻辑搭建.mp4 [58.6 MB]
  • 5-3 consumequeue的文件存储结构设计.mp4 [35.8 MB]
  • 5-4 【实战】ConsumeQueue存储结构实现(一)ConsumerQueue的offset数据结构设计.mp4 [16.3 MB]
  • 5-6 【实战】ConsumeQueue存储结构实现(三)ConsumeQueue的offset定时刷盘机制.mp4 [24.8 MB]
  • 5-10 consumeQueue处理器的基础接口定义.mp4 [11.0 MB]
  • 5-5 【实战】ConsumeQueue存储结构实现(二)offset映射模型的实现.mp4 [24.8 MB]
  • 5-2 閽堝ConsumerQueue鐨刣ispatcher鎿嶄綔.mp4 [25.3 MB]
  • 5-8 【实战】ConsumeQueue文件的预热实现.mp4 [47.1 MB]
  • 5-12 consumequeue的数据读取实现.mp4 [46.8 MB]
  • 5-11 consumeQueue鐨刼ffset瀹氫綅鑾峰彇.mp4 [28.2 MB]
第7章 【手写篇 - 第四步】客户端SDK设计与实战16 集
  • 7-7 Producer端消息发送基础接口定义【整理不易‖记得关注:CunWorKNotes】.mp4 [42.6 MB]
  • 7-12 Kakfa,RocketMQ中的重平衡策略了解.mp4 [14.7 MB]
  • 7-16 消费端拉消息场景测试.mp4 [21.9 MB]
  • 7-9 Consumer基础接口的开发.mp4 [22.8 MB]
  • 7-17 消费端拉数据后回应ack.mp4 [70.8 MB]
  • 7-14 消费者消息拉取监听器实现.mp4 [37.6 MB]
  • 7-8 Producer发送数据到Broker端持久化实现.mp4 [53.7 MB]
  • 7-13 消息消费需要考虑哪些问题.mp4 [14.8 MB]
  • 7-6 客户端拉取出broker地址功能实现.mp4 [43.1 MB]
  • 7-15 消息拉去请求链路完善.mp4 [64.2 MB]
  • 7-4 Producer角色如何与NameServer建立网络连接.mp4 [50.0 MB]
  • 7-11 重平衡问题讲解.mp4 [55.6 MB]
  • 7-18 全链路mq推送与消费验证.mp4 [33.4 MB]
  • 7-3 Netty异步转同步的功能封装.mp4 [77.2 MB]
  • 7-10 消息重平衡过程的梳理.mp4 [7.9 MB]
  • 7-2 如何设计一款消息队列的客户端SDK.mp4 [9.1 MB]
第6章 【手写篇 - 第三步】注册中心 - nameserver设计与实战20 集
  • 6-3 注册中心的设计与实现(一)事件总线的发布能力实现【优质资源‖关注:cunWorkNotes 解锁】.mp4 [40.9 MB]
  • 6-17 nameserver主从复制-同步复制,异步复制,半同步复制的三种模式实现(一)【不易整理‖请关注:CunWorkNoteS】.mp4 [58.3 MB]
  • 6-12 -2 nameserver主从复制-主节点同步进程开启.mp4 [39.7 MB]
  • 6-16 nameserver主从复制-同步效果验证.mp4 [46.0 MB]
  • 6-6 注册中心的设计与实现(四)非法节点的剔除逻辑完善.mp4 [45.1 MB]
  • 6-14 nameserver主从复制-从节点连接主节点.mp4 [60.3 MB]
  • 6-10 nameserver集群架构的设计思路剖析.mp4 [12.1 MB]
  • 6-11 -1 nameserver主从复制-主节点同步进程开启.mp4 [35.5 MB]
  • 6-19 链式复制架构的介绍.mp4 [9.2 MB]
  • 6-4 注册中心的设计与实现(二)基于spi机制实现处理器实现.mp4 [37.3 MB]
  • 6-5 注册中心的设计与实现(三)事件监听的逻辑完善.mp4 [84.9 MB]
  • 6-18 nameserver主从复制-同步复制,异步复制,半同步复制的三种模式实现(二).mp4 [34.5 MB]
  • 6-15 nameserver主从复制-从节点接收主节点数据同步过程.mp4 [27.0 MB]
  • 6-20 链式复制的初始化实现mov.mp4 [44.2 MB]
  • 6-9 broker和nameserver的访问测试.mp4 [42.1 MB]
  • 6-13 nameserver主从复制-主节点同步线程.mp4 [49.7 MB]
  • 6-7 注册中心的设计与实现(五)broker与nameserver的网络通信建立.mp4 [35.3 MB]
  • 6-2 注册中心的设计与实现-基础骨架的搭建.mp4 [41.5 MB]
  • 6-22 链式复制的实现-全链路ack反馈的实现.mp4 [52.5 MB]
  • 6-8 注册中心的设计与实现(六)broker远程通信sdk的封装实现.mp4 [70.3 MB]
第8章 【手写篇 -第五步】broker高可用架构拓展实战13 集
  • 8-15 本章总结【更多精选‖公众号:CunWorknotes】 .mp4 [3.4 MB]
  • 8-11 Broker主从同步复制实现与验证.mp4 [40.5 MB]
  • 8-7 Broker集群的复制逻辑剖析【持续更新‖免费提供:CunworknoteS】.mp4 [4.8 MB]
  • 8-6 面对Broker集群,客户端拉取ip的实现【不易整理‖请关注:CunWorkNoteS】.mp4 [37.9 MB]
  • 8-14 Broker主从切换效果实现.mp4 [46.2 MB]
  • 8-3 topic的动态创建实现.mp4 [73.3 MB]
  • 8-13 Broker主节点宕机监听处理.mp4 [48.7 MB]
  • 8-5 Broker集群模式下的实例注册逻辑实现.mp4 [79.9 MB]
  • 8-4 动态创建topic效果验证.mp4 [23.0 MB]
  • 8-2 Broker的主从复制思路整理.mp4 [9.6 MB]
  • 8-8 Broker的主从链接通道初始化建立实现.mp4 [85.7 MB]
  • 8-12 Broker主从切换过程中会遇到的问题.mp4 [61.3 MB]
  • 8-9 Broker主从节点多目录文件拆解.mp4 [23.4 MB]
第10章 【手写篇 - 第七步】复杂消息处理(二) - 延迟消息功能的设计与实现6 集
  • 10-1 本章介绍.mp4 [2.0 MB]
  • 10-2 延迟消息设计以及使用场景介绍.mp4 [13.4 MB]
  • 10-6 本章介绍.mp4 [1.3 MB]
  • 10-3 延迟消息的效果实现【资源精选‖更多关注:CunworkNotes】.mp4 [46.1 MB]
  • 10-5 延迟消息的数据恢复如何实现【更多精选‖公众号:CunWorknotes】 .mp4 [56.8 MB]
  • 10-4 延迟消息的持久化实现.mp4 [39.9 MB]
第11章 【手写篇 - 第八步】复杂消息处理(三) -事务消息功8 集
  • 11-1 本章介绍.mp4 [2.7 MB]
  • 11-4 本地事务回调接口的实现.mp4 [76.3 MB]
  • 11-5 事务消息回调处理.mp4 [72.4 MB]
  • 11-7 本章回顾.mp4 [1.5 MB]
  • 11-3 事务消息的half消息提交.mp4 [47.5 MB]
  • 11-6 事务消息的效果验证.mp4 [31.4 MB]
  • 11-2 事务消息设计思路回顾.mp4 [3.6 MB]
  • 源码+文档.exe [23.9 MB]

适合人群

  • 中间件开发者
  • 后端工程师
  • 对消息队列感兴趣的程序员

🎯 学习收获

  • 掌握消息队列核心机制
  • 能够手写分布式消息队列
  • 提升系统架构能力

🎉 祝您学习愉快!