飞豹客 · 课能看,资料也能带走
飞豹客后端开发 会员免费

硬核课堂-手写分布式IM系统-Plato

这门课解决什么问题 这门课聚焦于构建一个完整的分布式即时消息(IM)系统,核心解决企业级场景中多 IDC、高并发、强一致性的长连接管理及消息存储问题。课程通过手写实现,覆盖从协议设计到分布式缓存的底层逻辑,适合需要从零搭建或重构 IM 系统的开发者。具体场景包括:如何用长连接网关处理跨 IDC 的连

单课价¥19.90新品 上架
会员价 会员免费开通会员后本篇可直接下载套餐详情
160 人关注 更新于 2026-03-25 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

会员可免费下载本篇月会员、年会员、永久会员可免费领取。

开通会员 ›
购买本课销量 0 · 永久有效
会员价 · 单课标价 ¥19.90

会员 · 按档位

永久免费可领
年免费可领
月免费可领

游客按标价购买,不享受上表折扣。

支付成功后自动发放网盘链接,链接失效可找客服免费补

正版保障 极速发货 售后无忧

这门课解决什么问题

这门课聚焦于构建一个完整的分布式即时消息(IM)系统,核心解决企业级场景中多 IDC、高并发、强一致性的长连接管理及消息存储问题。课程通过手写实现,覆盖从协议设计到分布式缓存的底层逻辑,适合需要从零搭建或重构 IM 系统的开发者。具体场景包括:如何用长连接网关处理跨 IDC 的连接调度,如何设计分布式存储应对万人群聊压力,以及如何通过 State Server 维护消息状态同步。

适合什么基础与学习顺序

课程假设学习者具备一定的后端开发经验,熟悉 TCP/UDP 网络协议、Redis/Memcached 等缓存工具,以及基础的反序列化框架(如 JSON 或 Protobuf)。对分布式存储和领域驱动设计的理解能加速学习,但非必要条件。资料中 LAB 任务需结合代码实践,适合主动学习型开发者。建议学习顺序:先掌握“消息协议设计”和“长连接网关设计”,这两块是系统的通信基础;再深入“分布式存储”和“分布式缓存”,理解万人群聊的优化方案;最后通过 LAB 练习长连接调度和消息收发模块。

学完能独立做什么与资料配合练习

学完后,能独立搭建支持多机房部署的 IM 核心链路,并完成消息的持久化与同步。资料包含完整的网关实现和 State Server 代码,建议结合 LAB 任务独立完成长连接调度和消息收发模块,同时参考相关文档理解存储与缓存设计。资料中的代码需配合 Linux 环境运行,通过 Docker 快速搭建实验环境,确保关键模块(如网关和 State Server)在本地可完整调试。在完成 LAB 时,需手动调试并处理分布式环境下的异常场景(如网络分区),以巩固对系统架构的理解。

课程目录

硬核课堂-手写分布式IM系统-Plato 📁 第一部分 📁 第二部分:业务架构实现 📁 04.长连接网关设计(三)-通用性&多IDC&方案总结 📁 16.实现 State Server(一) -生命周期&LAB2D 📁 10.分布式存储(二)-万人群聊优化 📁 06.领域驱动设计(二)-IM系统的微服务划分 📁 17.实现 state server(二)-实现消息状态机 📁 09.分布式存储(一)-IM的存储模型设计 📁 19.LAB2:实现完整长连接网关层 📁 01.消息协议设计 📁 03.长连接网关设计(二)-连接可用性 📁 07.分布式缓存设计(一)-低延迟&高吞吐优化策略 📁 02.长连接网关设计(一)-基本实现 📁 13实现 IP Config - 长连接调度引擎&LAB2A 📁 15.实现 IM Gateway-控制长连接收发消息&LAB2C 📁 14.实现 IM Gateway-持有socket长连&LAB2B 📁 12.LAB1-实现IM命令行客户端 📁 11.LAB0-独立完成IM系统架构设计 📁 18.实现State Server(三)-分布式化(高可用可伸缩) 📁 08.分布式缓存设计(二)-高可用&一致性优化策略 📁 05.领域驱动设计(一)-设计方法 📁80 集
  • 01.核心领域实现 📄 74 长连接生命周期管理.mp4
  • 📄 76 源码阅读1.mp4
  • 📄 77 源码阅读2.mp4
  • 📄 24 下行消息.mp4
  • 📄 25 平滑迁移.mp4
  • 📄 23 方案总结.mp4
  • 📄 20 通用设计1.mp4
  • 📄 22 多IDC方案.mp4
  • 📄 19 消息中台.mp4
  • 📄 21 通用设计2.mp4
  • 📄 57 万人群聊1.mp4
  • 📄 58 万人群聊2.mp4
  • 📄 35 设计目标.mp4
  • 📄 38 添加约束.mp4
  • 📄 39 微服务划分.mp4
  • 📄 37 解决方案2.mp4
  • 📄 36 解决方案1.mp4
  • 📄 34 背景分析.mp4
  • 📄 80 连接可靠性源码阅读.mp4
  • 📄 78 消息可靠性设计.mp4
  • 📄 85 源码导读.mp4
  • 📄 05.消息可用性(四)-上行消息.mp4
  • 📄 06.消息可用性(五)-消息转发.mp4
  • 📄 02 消息可用性(一)-基本概念.mp4
  • 📄 01.基本·协议设计.mp4
  • 📄 07 消息可用性(六)-下行消息.mp4
  • 📄 04 消息可用性(三)-方案选型.mp4
  • 📄 03 消息可用性(二)-背景介绍.mp4
  • 📄 54 实现方案.mp4
  • 📄 53 背景介绍.mp4
  • 📄 56 复杂性治理.mp4
  • 📄 55 历史存储.mp4
  • 📄 43 延迟优化1.mp4
  • 📄 44 延迟优化2.mp4
  • 📄 41 评估标准.mp4
  • 📄 42 基本方案.mp4
  • 📄 40 分布式缓存介绍.mp4
  • 📄 45 延迟优化3.mp4
  • 📄 46 高吞吐优化.mp4
  • 📄 65 LAB2A_实现ipconf server.mp4
  • 📄 64 架构设计.mp4
  • 📄 63 设计目标.mp4
  • 📄 66 源码参考阅读.mp4
  • 📄 09 基本分析.mp4
  • 📄 08 背景介绍.mp4
  • 📄 12 并发模型.mp4
  • 📄 10 设计目标.mp4
  • 📄 11 ip选择.mp4
  • 📄 13 内存布局.mp4
  • 📄 16 长连接网关设计(二)-连接可用性-服务重启1.mp4
  • 📄 15 长连接网关设计(二)-连接可用性-断线重连.mp4
  • 📄 17 长连接网关设计(二)-连接可用性-服务重启2.mp4
  • 📄 18 长连接网关设计(二)-连接可用性-限流.mp4
  • 📄 14 长连接网关设计(二)-连接可用性-消息路由.mp4
  • 📄 73 源码分析.mp4
  • 📄 71 设计方案.mp4
  • 📄 59 架构总结.mp4
  • 📄 61 客户端框架的设计.mp4
  • 📄 62 客户端实现源码导读.mp4
  • 📄
  • 70 gateway 源码参考阅读.mp4
  • 📄 67 背景介绍.mp4
  • 📄 68 socket状态机.mp4
  • 📄 03 IM业务编排DAG架构.mp4
  • 📄 82 消息状态机的分布式化.mp4
  • 📄 83 实现存算分离&单元化部署.mp4
  • 📄 81 介绍.mp4
  • 📄 26 什么是DDD.mp4
  • 📄 29 DDD应用流程.mp4
  • 📄 28 名词术语.mp4
  • 📄 30 登月的原始需求.mp4
  • 📄 32 阿波罗2.mp4
  • 📄
  • 33 hardcore system design.mp4
  • 📄 27 名词解释.mp4
  • 📄 31 阿波罗1.mp4
  • 📄 48 缓存高可用2.mp4
  • 📄 51 缓存一致性2.mp4
  • 📄 52 运维.mp4
  • 📄 50 缓存一致性1.mp4
  • 📄 47 缓存高可用1.mp4
  • 📄 49 缓存高可用3.mp4