深入拆解消息队列47讲

 

【资源介绍】:

中间件作为三大基础软件之一,消息队列是其重要的组成部分。

早年,业界消息队列演进的主要推动力在于功能、场景、分布式集群的支持等等。近几年,随着云原生架构和 Serverless 的普及,业界 MQ 主要向实时消息和流消息的融合架构、Serverless、Event、协议兼容等方面演进。从而实现计算、存储的弹性,实现集群的 Serverless 化。

业务场景越来越复杂,业务消息的数据量也越来越大,这进一步加剧了技术选型的难度以及 MQ 调优的难度。但通过拆解经典消息队列,你会深刻体会到什么叫“发展的本质是联系”。

从架构设计角度来看,消息队列在演进过程中本就存在相互借鉴,这也给我们学习消息队列提供了一个便捷的路径。许文强老师将结合自己的多年积累,带着你探索这条路径,一起从需求出发,深入 MQ 设计原理,对比主流技术方案,思考选型重点,极简代码辅助,最终你学习任意一款消息队列将会变得非常简单,在实际产线中也将运用自如。

本课程共包含六个模块。

预习篇:了解主流 MQ 的发展脉络,从中明确未来发展方向,并就后续课程频繁提及的基础概念做一个对齐。

基础篇:围绕通信协议、网络模块、存储模块、生产者、消费者等五个部分,分析一个最基础的消息队列应该考虑什么,如何选型以及如何设计实现。最后还会围绕着这五个部分分析 4 款主流消息队列的设计实现。

进阶篇:在最基础的消息队列之上,从集群瓶颈和可靠性风险分析、如何构建集群、如何确保数据一致性、集群的安全控制、集群的可观测性、编码技巧、集群优化等七个方面,来分析实现一个分布式的消息队列集群应该考虑什么、怎么做,有哪些方案以及各种方案的优劣。最后还是会围绕着这七个方面分析 4 款主流消息队列的设计实现。

功能篇:在集群化的消息队列的基础上,探讨在集群上如何实现顺序消息、幂等消息、延时消息、事务消息、死信队列、优先级队列、消息查询、支持 Schema、支持 WebSocket 等功能。详细分析实现这些功能要考虑什么,如何做方案设计、技术选型,以及怎样实现这些功能。

架构升级篇:前面四个模块已经实现了一个集群化、功能丰富的消息队列。接下来重点探讨在云原生架构演进、降本增效诉求增大、Serverless/Event 概念兴起等背景下,消息队列是如何跟进业界最新设计理念,做架构升级以满足系统弹性和降本诉求的。本模块将从存算分离架构、分层存储、Severless/Event 架构、集群容灾、数据连接、消息中台等六个方面来展开讲解技术上如何实现、如何考虑、能达到什么效果、有哪些风险、能满足哪些场景等等。

经验总结篇:基于讲师多年观察所产出的分享,从多个视角输出,赋能业务和产品,也为你自身赋能。

【资源目录】:

├──01|业界的主流消息队列是如何发展起来的?.md 15.60kb
├──01|业界的主流消息队列是如何发展起来的?.mp3 15.85M
├──01|业界的主流消息队列是如何发展起来的?.pdf 8.34M
├──02|消息队列在架构和功能层面都包含哪些概念?.md 13.88kb
├──02|消息队列在架构和功能层面都包含哪些概念?.mp3 15.36M
├──02|消息队列在架构和功能层面都包含哪些概念?.pdf 11.35M
├──03|通信协议:如何设计一个好的通信协议?.md 17.58kb
├──03|通信协议:如何设计一个好的通信协议?.mp3 19.97M
├──03|通信协议:如何设计一个好的通信协议?.pdf 11.18M
├──04|网络:如何设计高性能的网络模块?.md 19.89kb
├──04|网络:如何设计高性能的网络模块?.mp3 19.54M
├──04|网络:如何设计高性能的网络模块?.pdf 27.03M
├──05|存储:消息数据和元数据的存储是如何设计的?.md 22.27kb
├──05|存储:消息数据和元数据的存储是如何设计的?.mp3 21.30M
├──05|存储:消息数据和元数据的存储是如何设计的?.pdf 17.40M
├──06|存储:如何提升存储模块的性能和可靠性?.md 21.35kb
├──06|存储:如何提升存储模块的性能和可靠性?.mp3 19.97M
├──06|存储:如何提升存储模块的性能和可靠性?.pdf 15.20M
├──07|生产端:生产者客户端的SDK有哪些设计要点?.md 20.63kb
├──07|生产端:生产者客户端的SDK有哪些设计要点?.mp3 16.78M
├──07|生产端:生产者客户端的SDK有哪些设计要点?.pdf 12.01M
├──08|消费端:消费者客户端的SDK有哪些设计要点?(上).md 15.22kb
├──08|消费端:消费者客户端的SDK有哪些设计要点?(上).mp3 14.64M
├──08|消费端:消费者客户端的SDK有哪些设计要点?(上).pdf 20.24M
├──09|消费端:消费者客户端的SDK有哪些设计要点?(下).md 15.01kb
├──09|消费端:消费者客户端的SDK有哪些设计要点?(下).mp3 13.76M
├──09|消费端:消费者客户端的SDK有哪些设计要点?(下).pdf 14.38M
├──10|从基础功能拆解RabbitMQ的架构设计与实现.md 16.20kb
├──10|从基础功能拆解RabbitMQ的架构设计与实现.mp3 15.13M
├──10|从基础功能拆解RabbitMQ的架构设计与实现.pdf 15.36M
├──11|从基础功能拆解RocketMQ的架构设计与实现.md 17.81kb
├──11|从基础功能拆解RocketMQ的架构设计与实现.mp3 15.76M
├──11|从基础功能拆解RocketMQ的架构设计与实现.pdf 13.85M
├──12|从基础功能拆解Kafka的架构设计与实现.md 16.29kb
├──12|从基础功能拆解Kafka的架构设计与实现.mp3 14.01M
├──12|从基础功能拆解Kafka的架构设计与实现.pdf 13.15M
├──13|从基础功能拆解Pulsar的架构设计与实现.md 17.66kb
├──13|从基础功能拆解Pulsar的架构设计与实现.mp3 15.93M
├──13|从基础功能拆解Pulsar的架构设计与实现.pdf 16.28M
├──14|集群:哪些环节会存在性能瓶颈和数据可靠性风险?.md 15.54kb
├──14|集群:哪些环节会存在性能瓶颈和数据可靠性风险?.mp3 14.28M
├──14|集群:哪些环节会存在性能瓶颈和数据可靠性风险?.pdf 17.45M
├──15|集群:如何构建分布式的消息队列集群?(上).md 16.18kb
├──15|集群:如何构建分布式的消息队列集群?(上).mp3 16.46M
├──15|集群:如何构建分布式的消息队列集群?(上).pdf 13.65M
├──16|集群:如何构建分布式的消息队列集群?(下).md 16.68kb
├──16|集群:如何构建分布式的消息队列集群?(下).mp3 15.20M
├──16|集群:如何构建分布式的消息队列集群?(下).pdf 15.40M
├──17|可靠性:分布式集群的数据一致性都有哪些实现方案.md 18.16kb
├──17|可靠性:分布式集群的数据一致性都有哪些实现方案.mp3 16.45M
├──17|可靠性:分布式集群的数据一致性都有哪些实现方案.pdf 15.40M
├──18|性能:Java开发分布式存储系统都有哪些常用的编码技巧?.md 20.17kb
├──18|性能:Java开发分布式存储系统都有哪些常用的编码技巧?.mp3 17.55M
├──18|性能:Java开发分布式存储系统都有哪些常用的编码技巧?.pdf 12.70M
├──19|安全:身份认证、资源鉴权和加密传输都是怎么实现的?.md 19.70kb
├──19|安全:身份认证、资源鉴权和加密传输都是怎么实现的?.mp3 18.29M
├──19|安全:身份认证、资源鉴权和加密传输都是怎么实现的?.pdf 21.67M
├──20|安全:如何设计高吞吐和大流量分布式集群的限流方案?.md 18.61kb
├──20|安全:如何设计高吞吐和大流量分布式集群的限流方案?.mp3 17.29M
├──20|安全:如何设计高吞吐和大流量分布式集群的限流方案?.pdf 27.78M
├──21|可观测性:如何设计实现一个好用的分布式监控体系?.md 21.10kb
├──21|可观测性:如何设计实现一个好用的分布式监控体系?.mp3 20.86M
├──21|可观测性:如何设计实现一个好用的分布式监控体系?.pdf 19.29M
├──22|可观测性:如何设计实现消息轨迹功能?.md 19.78kb
├──22|可观测性:如何设计实现消息轨迹功能?.mp3 19.23M
├──22|可观测性:如何设计实现消息轨迹功能?.pdf 17.38M
├──23|从集群角度拆解RabbitMQ的架构设计与实现.md 17.51kb
├──23|从集群角度拆解RabbitMQ的架构设计与实现.mp3 16.38M
├──23|从集群角度拆解RabbitMQ的架构设计与实现.pdf 15.85M
├──24|从集群角度拆解RocketMQ的架构设计与实现.md 19.20kb
├──24|从集群角度拆解RocketMQ的架构设计与实现.mp3 18.80M
├──24|从集群角度拆解RocketMQ的架构设计与实现.pdf 21.85M
├──25|从集群角度拆解Kafka的架构设计与实现.md 16.61kb
├──25|从集群角度拆解Kafka的架构设计与实现.mp3 15.47M
├──25|从集群角度拆解Kafka的架构设计与实现.pdf 14.20M
├──26|从集群角度拆解Pulsar的架构设计与实现.md 17.03kb
├──26|从集群角度拆解Pulsar的架构设计与实现.mp3 13.95M
├──26|从集群角度拆解Pulsar的架构设计与实现.pdf 17.51M
├──27|基础功能:Topic、分区、订阅等基本功能是如何实现的?.md 21.38kb
├──27|基础功能:Topic、分区、订阅等基本功能是如何实现的?.mp3 17.50M
├──27|基础功能:Topic、分区、订阅等基本功能是如何实现的?.pdf 16.58M
├──28|顺序消息和幂等:如何实现顺序消息和数据幂等?.md 25.93kb
├──28|顺序消息和幂等:如何实现顺序消息和数据幂等?.mp3 23.17M
├──28|顺序消息和幂等:如何实现顺序消息和数据幂等?.pdf 17.47M
├──29|延时消息:如何实现高性能的定时-延时消息?.md 21.17kb
├──29|延时消息:如何实现高性能的定时-延时消息?.mp3 17.64M
├──29|延时消息:如何实现高性能的定时-延时消息?.pdf 23.75M
├──30|事务消息:如何实现一个完整的事务消息模块?.md 20.84kb
├──30|事务消息:如何实现一个完整的事务消息模块?.mp3 18.82M
├──30|事务消息:如何实现一个完整的事务消息模块?.pdf 18.72M
├──31|死信队列和优先级队列:如何实现死信队列和优先级队列?.md 21.68kb
├──31|死信队列和优先级队列:如何实现死信队列和优先级队列?.mp3 29.91M
├──31|死信队列和优先级队列:如何实现死信队列和优先级队列?.pdf 19.98M
├──32|消息查询:如何实现消息查询功能?.md 20.83kb
├──32|消息查询:如何实现消息查询功能?.mp3 16.59M
├──32|消息查询:如何实现消息查询功能?.pdf 16.31M
├──33|Schema:如何设计实现Schema模块?.md 20.30kb
├──33|Schema:如何设计实现Schema模块?.mp3 26.98M
├──33|Schema:如何设计实现Schema模块?.pdf 17.40M
├──34|WebSocket:如何在消息队列内核中支持WebSocket?.md 18.46kb
├──34|WebSocket:如何在消息队列内核中支持WebSocket?.mp3 19.97M
├──34|WebSocket:如何在消息队列内核中支持WebSocket?.pdf 12.76M
├──35|从高级功能拆解4款主流MQ的架构设计与实现.md 30.98kb
├──35|从高级功能拆解4款主流MQ的架构设计与实现.mp3 15.27M
├──35|从高级功能拆解4款主流MQ的架构设计与实现.pdf 9.52M
├──36|云原生:业界MQ的计算存储分离是如何实现的?.md 22.76kb
├──36|云原生:业界MQ的计算存储分离是如何实现的?.mp3 20.36M
├──36|云原生:业界MQ的计算存储分离是如何实现的?.pdf 22.97M
├──37|云原生:MQ的分层存储架构都有哪些实现方案?.md 20.45kb
├──37|云原生:MQ的分层存储架构都有哪些实现方案?.mp3 19.16M
├──37|云原生:MQ的分层存储架构都有哪些实现方案?.pdf 13.04M
├──38|Serverless:如何基于Serverless架构实现流式数据处理?.md 16.99kb
├──38|Serverless:如何基于Serverless架构实现流式数据处理?.mp3 16.04M
├──38|Serverless:如何基于Serverless架构实现流式数据处理?.pdf 12.08M
├──39|Serverless:如何基于MQ和Serverless设计事件驱动架构.md 24.31kb
├──39|Serverless:如何基于MQ和Serverless设计事件驱动架构.mp3 20.84M
├──39|Serverless:如何基于MQ和Serverless设计事件驱动架构.pdf 13.09M
├──40|连接器:如何以MQ为核心搭建数据集成架构?.md 22.67kb
├──40|连接器:如何以MQ为核心搭建数据集成架构?.mp3 18.83M
├──40|连接器:如何以MQ为核心搭建数据集成架构?.pdf 13.37M
├──41|容灾:如何实现跨地域、跨可用区的容灾和同步?.md 19.64kb
├──41|容灾:如何实现跨地域、跨可用区的容灾和同步?.mp3 18.31M
├──41|容灾:如何实现跨地域、跨可用区的容灾和同步?.pdf 12.89M
├──42|消息中台:如何搭建企业内部统一的消息服务?.md 15.74kb
├──42|消息中台:如何搭建企业内部统一的消息服务?.mp3 14.34M
├──42|消息中台:如何搭建企业内部统一的消息服务?.pdf 11.59M
├──43|未来:消息队列的技术架构会如何演进?.md 13.93kb
├──43|未来:消息队列的技术架构会如何演进?.mp3 13.51M
├──43|未来:消息队列的技术架构会如何演进?.pdf 9.19M
├──44|商业化:消息队列的商业化应该怎么做?.md 16.79kb
├──44|商业化:消息队列的商业化应该怎么做?.mp3 16.98M
├──44|商业化:消息队列的商业化应该怎么做?.pdf 8.01M
├──45|研发经验:如何成为某个领域的专家?.md 10.70kb
├──45|研发经验:如何成为某个领域的专家?.mp3 9.91M
├──45|研发经验:如何成为某个领域的专家?.pdf 8.54M
├──46|客户成功:技术人如何打造产品思维?.md 9.08kb
├──46|客户成功:技术人如何打造产品思维?.mp3 9.04M
├──46|客户成功:技术人如何打造产品思维?.pdf 7.64M
├──47|运维运营:如何运营好大规模商业化的消息队列集群?.md 13.38kb
├──47|运维运营:如何运营好大规模商业化的消息队列集群?.mp3 12.75M
├──47|运维运营:如何运营好大规模商业化的消息队列集群?.pdf 8.45M
├──结束语|尽最大的努力,做最好的自己.md 6.67kb
├──结束语|尽最大的努力,做最好的自己.mp3 7.18M
├──结束语|尽最大的努力,做最好的自己.pdf 7.63M
├──开篇词|深度拆解核心原理,轻松掌握所有消息队列.md 9.52kb
├──开篇词|深度拆解核心原理,轻松掌握所有消息队列.mp3 10.50M
├──开篇词|深度拆解核心原理,轻松掌握所有消息队列.pdf 9.40M
├──期末测试|检测学习之旅,赴满分之约.md 0.51kb
└──期末测试|检测学习之旅,赴满分之约.pdf 6.87M