这门课解决什么问题

这门课程旨在帮助你从0到1完全手写一个分布式消息队列中间件,解决你在实际开发中遇到的消息队列设计与实现难题。课程通过深入剖析常见的消息队列原理和架构设计,帮助你理解消息队列在分布式系统中的重要性与复杂性,从而能够独立设计与实现高效的消息队列系统。

适合什么基础

适合有一定Java基础和Linux操作系统知识的开发者。如果你已经熟悉Java编程和基本的计算机系统原理,能够理解面向对象编程,那么你完全能够跟上课程的节奏。对于没有相关经验的开发者,建议在学习本课程之前,先学习一些Java编程和Linux操作系统的基础知识,以便更好地理解课程内容。

建议先看哪几块

建议你首先从课程的第一章开始,通过课程导学了解整体的学习框架。然后进入第二章,深入学习RabbitMQ、RocketMQ和Kafka等常用消息队列的原理,这将为你后续的学习打下坚实的基础。接下来,详细阅读第三章的内容,重点学习消息中间件的架构设计,尤其是CommitLog、ConsumerQueue和多节点存储等核心知识点。

学完能独立做什么

学完这门课程后,你将能够独立设计并实现一个完整的分布式消息队列系统,包括消息存储、消费分配、集群架构设计等关键功能。你能够理解并实现消息队列中的复杂功能,如消息重试、延迟消息、事务消息等。此外,你还能够优化消息队列系统在多线程场景下的读写性能,确保系统在高并发场景下的高效运行。

资料怎么配合练习

课程提供了详细的代码示例和实战练习,建议你跟随课程内容逐步动手实践,通过代码实现加深对理论知识的理解。课程资料包中包含一个代码仓库,你可以克隆仓库中的代码,逐步完成每个章节的练习。建议你在学习每部分知识后,先阅读相关理论,再动手实践,最后参考课程中的代码实现,以确保你能够独立完成整个分布式消息队列系统的开发。

课程目录

第1章 课程导学介绍/
[ 13M] 1-1手写消息中间件--课程导学
[ 12M] 1-2课程详细内容安排
第2章 深入常用消息队列原理/
[ 51M] 2-1RabbitMq架构原理深入剖析
[ 53M] 2-2RocketMq架构原理深入剖析
[ 46M] 2-3Kafka架构原理深入剖析
[ 18M] 2-4三种消息队列对比剖析
第3章 消息中间件架构设计篇/
[4.3M] 3-1本章介绍
[ 22M] 3-2CommitLog介绍-MQ的消息都存在哪儿?
[ 29M] 3-3ConsumerQueue介绍-面对多消费者,消息的分配要如何设计
[ 18M] 3-4消息集群架构思考(一)为什么消息队列还需用到注册中心?
[ 37M] 3-5消息集群架构思考(二)多节点存储的架构要如何实现?
[ 39M] 3-6复杂消息功能思考(一)消息重试机制如何实现?
[ 31M] 3-7复杂消息功能思考(二)延迟消息要怎么做?
[ 35M] 3-8复杂消息功能思考(三)事务消息是怎么一回事?
[ 16M] 3-9复杂消息功能思考(四)内存映射自扩容设计思路
[7.1M] 3-10本章回顾
第4章 【手写篇 - 第一步】 数据存储核心 - commitLog设计与实战/
[3.9M] 4-1本章介绍
[5.2M] 4-2代码仓库介绍
[7.1M] 4-3消息原始数据存储结构讲解
[ 36M] 4-4操作系统原理之-传统文件IO读写介绍
[ 42M] 4-5基于mmap的读写工具封装(一)基础功能的实现
[ 28M] 4-6基于mmap的读写工具封装(二)mmap的内存释放讲解
[ 33M] 4-7基于mmap的读写工具封装(三)mmap工具的效果验证
[ 38M] 4-8如何实现mq消息的顺序写入
[ 41M] 4-9mq消息存储配置的管理
[ 40M] 4-10mq基础配置的封装
[ 40M] 4-11Broker的启动类设计
[ 27M] 4-12commitLog写入逻辑细节分析
[ 67M] 4-13如何获取最新写入的commitLog文件
[ 15M] 4-14消息内容结构体设计
[ 35M] 4-15消息结构体封装的实践
[ 40M] 4-16commitlog文件剩余空间检测机制
[ 53M] 4-17消息投递offset更新机制的实现
[ 22M] 4-18消息写入的配置属性同步更新
[ 46M] 4-19多线程场景下mmap的读写如何优化
[ 17M] 4-20commitlog追加写入数据测试
第5章 【手写篇 - 第二步】消息分派的核心 - ConsumeQueue分析与实战/
[3.6M] 5-1本章介绍
[ 26M] 5-2针对ConsumerQueue的dispatcher操作
[ 33M] 5-3consumequeue的文件存储结构设计
[ 20M] 5-4【实战】ConsumeQueue存储结构实现(一)ConsumerQueue的offset数据结构设计
[ 25M] 5-5【实战】ConsumeQueue存储结构实现(二)offset映射模型的实现
[ 18M] 5-6【实战】ConsumeQueue存储结构实现(三)ConsumeQueue的offset定时刷盘机制
[ 62M] 5-7【实战】ConsumeQueue存储预热链路逻辑搭建
[ 44M] 5-8【实战】ConsumeQueue文件的预热实现
[ 24M] 5-9consumequeue文件的映射写入和offset更新
[ 11M] 5-10consumeQueue处理器的基础接口定义
[ 24M] 5-11consumeQueue的offset定位获取
[ 41M] 5-12consumequeue的数据读取实现
[ 47M] 5-13consumequeue的offset更新实现
[ 20M] 5-14多消费者消费效果验证
第6章 【手写篇 - 第三步】注册中心 - nameserver设计与实战/
[ 19M] 6-1本章介绍
[ 46M] 6-2注册中心的设计与实现-基础骨架的搭建
[ 44M] 6-3注册中心的设计与实现(一)事件总线的发布能力实现
[ 35M] 6-4注册中心的设计与实现(二)基于spi机制实现处理器实现
[ 64M] 6-5注册中心的设计与实现(三)事件监听的逻辑完善
[ 39M] 6-6注册中心的设计与实现(四)非法节点的剔除逻辑完善
[ 33M] 6-7注册中心的设计与实现(五)broker与nameserver的网络通信建立
[ 68M] 6-8注册中心的设计与实现(六)broker远程通信sdk的封装实现
[ 42M] 6-9broker和nameserver的访问测试
[ 17M] 6-10nameserver集群架构的设计思路剖析
[ 48M] 6-11-1nameserver主从复制-主节点同步进程开启
[ 51M] 6-12-2nameserver主从复制-主节点同步进程开启
[ 52M] 6-13nameserver主从复制-主节点同步线程
[ 56M] 6-14nameserver主从复制-从节点连接主节点
[ 25M] 6-15nameserver主从复制-从节点接收主节点数据同步过程
[ 37M] 6-16nameserver主从复制-同步效果验证
[ 62M] 6-17nameserver主从复制-同步复制,异步复制,半同步复制的三种模式实现(一)
[ 32M] 6-18nameserver主从复制-同步复制,异步复制,半同步复制的三种模式实现(二)
[9.5M] 6-19链式复制架构的介绍
[ 44M] 6-20链式复制的初始化实现mov
[ 53M] 6-21链式复制的同步实现-全链路同步的实现
[ 49M] 6-22链式复制的实现-全链路ack反馈的实现
[ 12M] 6-23链式复制的实现-数据同步效果验证
[5.5M] 6-24本章回顾