深入拆解消息队列47讲 - 许文强程序人生技术教程

深入拆解消息队列47讲 / 学透主流MQ,搞定技术选型难题

许文强 腾讯云 Kafka 技术负责人
📅 更新时间:
🔥 热门推荐
  • 📖 课程目录
  • 📝 课程介绍
  • 从庖丁解牛的角度出发,对架构做一次全面升级。

  • 01|业界的主流消息队列是如何发展起来的?

    技术的演进都是商业驱动的。

  • 02|消息队列在架构和功能层面都包含哪些概念?

    对消息队列做一个整体认识,让后面的学习过程更加顺利。

  • 03|通信协议:如何设计一个好的通信协议?

    从构建最基础的消息队列开始。

  • 04|网络:如何设计高性能的网络模块?

    网络模块的性能很大程度上决定了消息传输的能力和整体性能。

  • 05|存储:消息数据和元数据的存储是如何设计的?

    存储模块作为消息队列高吞吐、低延时、高可靠特性的基础保证,可以说是最核心的模块。

  • 06|存储:如何提升存储模块的性能和可靠性?

    存储模块的性能优化,核心要解决的其实就是两个问题:“写得快”和“读得快”。

  • 07|生产端:生产者客户端的SDK有哪些设计要点?

    详解SDK底层如何工作,由哪些功能模块组成。

  • 08|消费端:消费者客户端的SDK有哪些设计要点?(上)

    从技术上看,消费端SDK和生产端SDK一样,主要包括客户端基础功能和消费相关功能两部分。

  • 09|消费端:消费者客户端的SDK有哪些设计要点?(下)

    这节课继续讲消费端,聚焦消费分组、消费确认、消费失败处理三部分。

  • 10|从基础功能拆解RabbitMQ的架构设计与实现

    分析 RabbitMQ 在通信协议、网络模块、存储模块、生产者、消费者等五个模块的设计思路。

  • 11|从基础功能拆解RocketMQ的架构设计与实现

    分析 RocketMQ 在通信协议、网络模块、存储模块、生产者、消费者等五个模块的设计思路。

  • 12|从基础功能拆解Kafka的架构设计与实现

    分析 Kafka 在通信协议、网络模块、存储模块、生产者、消费者等五个模块的设计思路。

  • 13|从基础功能拆解Pulsar的架构设计与实现

    分析 Pulsar 在通信协议、网络模块、存储模块、生产者、消费者等五个模块的设计思路。

  • 14|集群:哪些环节会存在性能瓶颈和数据可靠性风险?

    从这节课开始,我们将把单机的消息队列架构扩展成为分布式的高可靠、高性能的完整集群。

  • 15|集群:如何构建分布式的消息队列集群?(上)

    这节课我们将围绕着节点发现和节点探活两个方面讲一下具体如何实现集群。

  • 16|集群:如何构建分布式的消息队列集群?(下)

    这节课我们将围绕着元数据存储和集群管理两个方面讲一下具体如何实现集群。

  • 17|可靠性:分布式集群的数据一致性都有哪些实现方案?

    这节课我们讲一下集群中数据的一致性,看看它是如何保证这些分布在多个节点上的副本上的数据是一致的。

  • 18|性能:Java开发分布式存储系统都有哪些常用的编码技巧?

    其中的每个知识点都是独立的,你可以挑自己感兴趣的部分学习。

  • 19|安全:身份认证、资源鉴权和加密传输都是怎么实现的?

    消息队列是如何保证数据安全的?想必你在使用消息队列产品的时候,应该也有同样的疑问。

  • 20|安全:如何设计高吞吐和大流量分布式集群的限流方案?

    详细分析数据自我保护和服务自我保护。

  • 21|可观测性:如何设计实现一个好用的分布式监控体系?

    带你实现好用的指标和日志模块,以便快速定位业务问题出在哪里。

  • 22|可观测性:如何设计实现消息轨迹功能?

    消息轨迹记录了消息从生产到消费完成或消费失败的整个生命周期。

  • 23|从集群角度拆解RabbitMQ的架构设计与实现

    详解RabbitMQ在集群构建、数据可靠性、数据安全、集群可观测性等四大模块的实现。

  • 24|从集群角度拆解RocketMQ的架构设计与实现

    解析 RocketMQ 在集群构建、部署形态、数据可靠性、安全控制、可观测性等五个方面的设计实现。

  • 25|从集群角度拆解Kafka的架构设计与实现

    详细分析 Kafka 副本之间的数据一致性、数据同步机制、Leader 切换、数据截断等等。

📋 课程详细介绍

【专栏交流群】 你将获得 40+ MQ 开发核心必备知识点 4 款主流 MQ 技术共性总结 极简代码体验 MQ 功能设计思路 以 Pulsar 为代表的最新 MQ 探索 讲师介绍 课程介绍...

【专栏交流群】


你将获得

  • 40+ MQ 开发核心必备知识点
  • 4 款主流 MQ 技术共性总结
  • 极简代码体验 MQ 功能设计思路
  • 以 Pulsar 为代表的最新 MQ 探索

讲师介绍


课程介绍

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

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

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

课程设计

本课程共包含六个模块。

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

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

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

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

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

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


课程目录


适合人群

  • 初中级后端开发人员。在工作中对一款或多款消息队列有使用经验,想进一步系统学习消息队列的开发者。
  • 产品经理、售前架构师。对消息队列的概念、架构设计理念没有全貌了解的同学具有参考价值。

订阅须知

💡 学习建议

  • 建议按照课程目录顺序学习,循序渐进掌握知识点
  • 每个章节配合实战练习,巩固所学内容
  • 遇到问题可在评论区交流,社区互助学习
  • 完成课程后尝试独立项目,检验学习成果

❓ 常见问题 FAQ

这个教程适合什么水平的学习者?

本教程从基础概念讲起,逐步深入到高级应用,适合零基础初学者到有一定经验的开发者。无论您是刚入门还是想提升技能,都能从中受益。

学习这个教程需要多长时间?

根据个人基础和每天学习时间不同,通常需要2-4周可以完成基础部分,深入掌握需要1-2个月的持续学习和实践。建议每天投入1-2小时系统学习。

学完后能达到什么水平?

完成本教程后,您将掌握程序人生的核心技术和最佳实践,能够独立开发实际项目,具备中级开发工程师的技术能力,为求职或晋升打下坚实基础。