深入拆解消息队列47讲--极客时间课程推荐/优惠
版权声明
本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
你将获得
- 40+ MQ 开发核心必备知识点;
- 4 款主流 MQ 技术共性总结;
- 极简代码体验 MQ 功能设计思路;
- 以 Pulsar 为代表的最新 MQ 探索。
课程介绍
中间件作为三大基础软件之一,消息队列是其重要的组成部分。
早年,业界消息队列演进的主要推动力在于功能、场景、分布式集群的支持等等。近几年,随着云原生架构和 Serverless 的普及,业界 MQ 主要向实时消息和流消息的融合架构、Serverless、Event、协议兼容等方面演进。从而实现计算、存储的弹性,实现集群的 Serverless 化。
业务场景越来越复杂,业务消息的数据量也越来越大,这进一步加剧了技术选型的难度以及 MQ 调优的难度。但通过拆解经典消息队列,你会深刻体会到什么叫“发展的本质是联系”。
从架构设计角度来看,消息队列在演进过程中本就存在相互借鉴,这也给我们学习消息队列提供了一个便捷的路径。许文强老师将结合自己的多年积累,带着你探索这条路径,一起从需求出发,深入 MQ 设计原理,对比主流技术方案,思考选型重点,极简代码辅助,最终你学习任意一款消息队列将会变得非常简单,在实际产线中也将运用自如。
课程设计
本课程共包含六个模块。
预习篇:了解主流 MQ 的发展脉络,从中明确未来发展方向,并就后续课程频繁提及的基础概念做一个对齐。
基础篇:围绕通信协议、网络模块、存储模块、生产者、消费者等五个部分,分析一个最基础的消息队列应该考虑什么,如何选型以及如何设计实现。最后还会围绕着这五个部分分析 4 款主流消息队列的设计实现。
进阶篇:在最基础的消息队列之上,从集群瓶颈和可靠性风险分析、如何构建集群、如何确保数据一致性、集群的安全控制、集群的可观测性、编码技巧、集群优化等七个方面,来分析实现一个分布式的消息队列集群应该考虑什么、怎么做,有哪些方案以及各种方案的优劣。最后还是会围绕着这七个方面分析 4 款主流消息队列的设计实现。
功能篇:在集群化的消息队列的基础上,探讨在集群上如何实现顺序消息、幂等消息、延时消息、事务消息、死信队列、优先级队列、消息查询、支持 Schema、支持 WebSocket 等功能。详细分析实现这些功能要考虑什么,如何做方案设计、技术选型,以及怎样实现这些功能。
架构升级篇:前面四个模块已经实现了一个集群化、功能丰富的消息队列。接下来重点探讨在云原生架构演进、降本增效诉求增大、Serverless/Event 概念兴起等背景下,消息队列是如何跟进业界最新设计理念,做架构升级以满足系统弹性和降本诉求的。本模块将从存算分离架构、分层存储、Severless/Event 架构、集群容灾、数据连接、消息中台等六个方面来展开讲解技术上如何实现、如何考虑、能达到什么效果、有哪些风险、能满足哪些场景等等。
经验总结篇:基于讲师多年观察所产出的分享,从多个视角输出,赋能业务和产品,也为你自身赋能。
课程目录
开篇词
- 开篇词|深度拆解核心原理,轻松掌握所有消息队列
预习篇
- 01|业界的主流消息队列是如何发展起来的?
- 02|消息队列在架构和功能层面都包含哪些概念?
基础篇
- 03|通信协议:如何设计一个好的通信协议?
- 04|网络:如何设计高性能的网络模块?
- 05|存储:消息数据和元数据的存储是如何设计的?
- 06|存储:如何提升存储模块的性能和可靠性?
- 07|生产端:生产者客户端的SDK有哪些设计要点?
- 08|消费端:消费者客户端的SDK有哪些设计要点?(上)
- 09|消费端:消费者客户端的SDK有哪些设计要点?(下)
- 10|从基础功能拆解RabbitMQ的架构设计与实现
- 11|从基础功能拆解RocketMQ的架构设计与实现
- 12|从基础功能拆解Kafka的架构设计与实现
- 13|从基础功能拆解Pulsar的架构设计与实现
进阶篇
- 14|集群:哪些环节会存在性能瓶颈和数据可靠性风险?
- 15|集群:如何构建分布式的消息队列集群?(上)
- 16|集群:如何构建分布式的消息队列集群?(下)
- 17|可靠性:分布式集群的数据一致性都有哪些实现方案?
- 18|性能:Java开发分布式存储系统都有哪些常用的编码技巧?
- 19|安全:身份认证、资源鉴权和加密传输都是怎么实现的?
- 20|安全:如何设计高吞吐和大流量分布式集群的限流方案?
- 21|可观测性:如何设计实现一个好用的分布式监控体系?
- 22|可观测性:如何设计实现消息轨迹功能?
- 23|从集群角度拆解RabbitMQ的架构设计与实现
- 24|从集群角度拆解RocketMQ的架构设计与实现
- 25|从集群角度拆解Kafka的架构设计与实现
- 26|从集群角度拆解Pulsar的架构设计与实现
功能篇
- 27|基础功能:Topic、分区、订阅等基本功能是如何实现的?
- 28|顺序消息和幂等:如何实现顺序消息和数据幂等?
- 29|延时消息:如何实现高性能的定时/延时消息?
- 30|事务消息:如何实现一个完整的事务消息模块?
- 31|死信队列和优先级队列:如何实现死信队列和优先级队列?
- 32|消息查询:如何实现消息查询功能?
- 33|Schema:如何设计实现Schema模块?
- 34|WebSocket:如何在消息队列内核中支持WebSocket?
- 35|从高级功能拆解4款主流MQ的架构设计与实现
架构升级篇
- 36|云原生:业界MQ的计算存储分离是如何实现的?
- 37|云原生:MQ的分层存储架构都有哪些实现方案?
- 38|Serverless:如何基于Serverless架构实现流式数据处理?
- 39|Serverless:如何基于MQ和Serverless设计事件驱动架构?
- 40|连接器:如何以MQ为核心搭建数据集成架构?
- 41|容灾:如何实现跨地域、跨可用区的容灾和同步?
- 42|消息中台:如何搭建企业内部统一的消息服务?
经验总结篇
- 43|未来:消息队列的技术架构会如何演进?
- 44|商业化:消息队列的商业化应该怎么做?
- 45|研发经验:如何成为某个领域的专家?
- 46|客户成功:技术人如何打造产品思维?
- 47|运维运营:如何运营好大规模商业化的消息队列集群?
结束语
- 结束语|尽最大的努力,做最好的自己
- 期末测试|检测学习之旅,赴满分之约