

├── 第1章 课程导学介绍
│ ├── 1-1 手写消息中间件–课程导学
│ └── 1-2 课程详细内容安排
├── 第2章 深入常用消息队列原理
│ ├── 2-1 RabbitMq架构原理深入剖析
│ ├── 2-2 RocketMq架构原理深入剖析
│ ├── 2-3 Kafka架构原理深入剖析
│ └── 2-4 三种消息队列对比剖析 从0到1手写分布式消息队列中间件_文件目录.txtTXT
├── 第3章 消息中间件架构设计篇
│ ├── 3-2 CommitLog介绍-MQ的消息都存在哪儿?
│ ├── 3-3 ConsumerQueue介绍-面对多消费者,消息的分配要如何设计
│ ├── 3-4 消息集群架构思考(一)为什么消息队列还需用到注册中心?
│ ├── …
│ ├── 3-6 复杂消息功能思考(一)消息重试机制如何实现?
│ ├── …
│ └── 3-8 复杂消息功能思考(三)事务消息是怎么一回事?
├── 第4章 【手写篇 – 第一步】 数据存储核心 – commitLog设计与实战
│ ├── 4-3 消息原始数据存储结构讲解
│ ├── 4-4 操作系统原理之 – 传统文件IO读写介绍
│ ├── 4-5 基于mmap的读写工具封装(一)基础功能的实现
│ ├── …
│ ├── 4-8 如何实现mq消息的顺序写入
│ ├── …
│ ├── 4-12 commitLog写入逻辑细节分析
│ ├── …
│ └── 4-20 commitlog追加写入数据测试
├── 第5章 【手写篇 – 第二步】消息分派的核心 – ConsumeQueue分析与实战
│ ├── 5-2 针对ConsumerQueue的dispatcher操作
│ ├── 5-3 consumequeue的文件存储结构设计
│ ├── 5-4 【实战】ConsumeQueue存储结构实现(一)ConsumerQueue的offset数据结构设计
│ ├── …
│ ├── 5-12 consumequeue的数据读取实现
│ └── 5-14 多消费者消费效果验证
├── 第6章 【手写篇 – 第三步】注册中心 – nameserver设计与实战 【6-23】
│ ├── 6-2 注册中心的设计与实现-基础骨架的搭建
│ ├── 6-3 注册中心的设计与实现(一)事件总线的发布能力实现
│ ├── …
│ ├── 6-7 注册中心的设计与实现(五)broker与nameserver的网络通信建立
│ ├── …
│ ├── 6-10 nameserver集群架构的设计思路剖析
│ ├── …
│ └── 6-22 链式复制的实现-全链路ack反馈的实现
├── 第7章 【手写篇 – 第四步】客户端SDK设计与实战【缺7-5】
│ ├── 7-2 如何设计一款消息队列的客户端SDK
│ ├── 7-3 Netty异步转同步的功能封装
│ ├── 7-4 Producer角色如何与NameServer建立网络连接
│ ├── …
│ ├── 7-7 Producer端消息发送基础接口定义
│ ├── …
│ ├── 7-9 Consumer基础接口的开发
│ ├── …
│ └── 7-18 全链路mq推送与消费验证
├── 第8章 【手写篇 -第五步】broker高可用架构拓展实战
│ ├── 8-2 Broker的主从复制思路整理
│ ├── 8-3 topic的动态创建实现
│ ├── …
│ ├── 8-7 Broker集群的复制逻辑剖析
│ ├── …
│ └── 8-14 Broker主从切换效果实现
├── 第9章 【手写篇 – 第六步】复杂消息处理(一) – 消息重试功能的设计与实现
│ ├── 9-2 消息重试设计思路实现
│ ├── 9-3 消息重试Netty请求链路打通
│ ├── …
│ ├── 9-6 时间轮组件的实现(一)
│ ├── …
│ └── 9-13 消息重试队列推送和消费的实现
├── 第10章 【手写篇 – 第七步】复杂消息处理(二) – 延迟消息功能的设计与实现
│ ├── 10-2 延迟消息设计以及使用场景介绍
│ ├── 10-3 延迟消息的效果实现
│ ├── 10-4 延迟消息的持久化实现
│ └── 10-5 延迟消息的数据恢复如何实现
├── 第11章 【手写篇 – 第八步】复杂消息处理(三) -事务消息功
│ ├── 11-2 事务消息设计思路回顾
│ ├── 11-3 事务消息的half消息提交
│ ├── 11-4 本地事务回调接口的实现
│ └── 11-6 事务消息的效果验证
├── 第12章 【手写篇 – 第九步】可视化管理控制台设计与实战1
│ ├── 12-2 基础控制台的接口开发
│ ├── 12-3 Broker数据的上报实现
│ └── 12-4 控制台的基础开发思路梳理
├── 第13章 【手写篇 – 第十步】基于消息队列综合实战
│ ├── 13-2 MQ多泳道环境的实现
│ └── 13-3 Kafka和实时计算
└── 第14章 课程回顾与常见面试题剖析
└── …