如果你已经能写 CRUD、用过 Redis,但一提到“长连接怎么撑住百万在线”“群聊消息怎么保证不丢不重”就只剩概念,那这套 Plato 手写分布式 IM 的课值得你花时间拆一拆。它不是讲怎么调第三方 IM SDK,而是从协议字段开始,一路把网关、状态机、存储模型搭出来——这种课的价值在于暴露工程细节,而不是给一个能跑的 demo。
课纲的含金量:三块硬骨头
把目录压扁看,整门课其实押在三个地方。第一是消息协议自己定,这意味着后面所有编解码、心跳、重连、协议升级的坑都得自己填,比直接上 Netty 自带的编解码器更接近真实系统。第二是长连接网关,课里从通用性谈到多 IDC,还专门收了一个“方案总结”的尾——说明讲的不只是单机 Demo,而是把网关拆成接入、路由、会话管理几层之后怎么横向扩。第三是分布式存储,存储模型设计和万人群聊优化分成两块,前者管消息怎么落、怎么索引,后者管读扩散还是写扩散、群成员多的时候怎么避免一次消息扇出把库打爆。
哪些章节值得精看
- 长连接网关部分:通用性设计和多 IDC 那两节建议逐段跟。网关是 IM 里最容易写成面条代码的地方,课程特意抽了“方案总结”来收口,说明中间的取舍值得反复看。
- 分布式存储两讲:存储模型设计决定了后面消息时序、已读位点、离线消息能不能做对;万人群聊优化是整门课里最接近生产痛点的部分,别跳。
- State Server 两讲:生命周期和消息状态机这块,是理解“消息到底在哪一刻算送达、哪一刻可以删”的关键。很多自研 IM 最后对不上账,问题就出在状态机没定义清楚。
- 领域驱动设计那节:微服务怎么划分是架构题不是编码题,单看可能偏理论,但配合后面 State Server 的实现回头再看,会顺很多。
资料包怎么拆开用
视频和配套代码不要按顺序一股脑刷。更省时间的做法是:先拿协议那部分把消息结构、字段含义过一遍,形成一个自己的脑图;然后跳到网关层,对着代码看连接建立、心跳、断线重连怎么落地;最后再回头看 DDD 的微服务划分——这时候你已经知道每个服务要扛什么,划分理由才立得住。存储部分建议单独抽一个周末,自己先想“消息按会话存还是按用户存”,再去看课里的选择,对比差在哪里。
适合谁,不适合谁
这门课偏“架构推导 + 手写实现”,对并发模型、网络编程、分布式一致性没有基本手感的人会比较吃力,尤其是消息状态机和多 IDC 那几节。反过来,如果你正在公司里接手一个自研 IM 的重构,或者想搞清楚群聊扩散、离线消息、多端同步这些老问题,Plato 的章节顺序基本就是一份可以对着抄的决策清单。把它当架构参考手册用,比当教程刷更划算。
🔥 硬核课堂-手写分布式IM系统-Plato
深入实践分布式IM系统架构与设计
编辑点评
从底层协议到分布式架构,全面解析IM系统构建过程,适合对高并发、分布式系统有深入理解的学习者。
⭐ 编辑推荐
学习分布式IM系统架构,掌握高并发处理与分布式存储技术,提升后端开发能力。
✨ 课程亮点
课程目录
📁 第一部分
📁 04.长连接网关设计(三)-通用性&多IDC&方案总结
24 下行消息.mp4 [34.1 MB]
25 平滑迁移.mp4 [36.5 MB]
23 方案总结.mp4 [41.4 MB]
20 通用设计1.mp4 [109.4 MB]
22 多IDC方案.mp4 [37.5 MB]
19 消息中台.mp4 [41.7 MB]
21 通用设计2.mp4 [36.2 MB]
📁 16.实现 State Server(一) -生命周期&LAB2D
74 长连接生命周期管理.mp4 [180.6 MB]
76 源码阅读1.mp4 [69.4 MB]
77 源码阅读2.mp4 [32.8 MB]
📁 10.分布式存储(二)-万人群聊优化
57 万人群聊1.mp4 [90.5 MB]
58 万人群聊2.mp4 [56.8 MB]
📁 06.领域驱动设计(二)-IM系统的微服务划分
35 设计目标.mp4 [94.9 MB]
38 添加约束.mp4 [41.4 MB]
39 微服务划分.mp4 [85.4 MB]
37 解决方案2.mp4 [147.7 MB]
36 解决方案1.mp4 [65.3 MB]
34 背景分析.mp4 [15.7 MB]
📁 17.实现 state server(二)-实现消息状态机
80 连接可靠性源码阅读.mp4 [180.6 MB]
78 消息可靠性设计.mp4 [192.2 MB]
📁 09.分布式存储(一)-IM的存储模型设计
54 实现方案.mp4 [70.5 MB]
53 背景介绍.mp4 [50.4 MB]
56 复杂性治理.mp4 [37.3 MB]
55 历史存储.mp4 [60.7 MB]
📁 19.LAB2:实现完整长连接网关层
85 源码导读.mp4 [180.5 MB]
📁 01.消息协议设计
05.消息可用性(四)-上行消息.mp4 [31.3 MB]
06.消息可用性(五)-消息转发.mp4 [44.2 MB]
02 消息可用性(一)-基本概念.mp4 [21.7 MB]
01.基本·协议设计.mp4 [182.6 MB]
07 消息可用性(六)-下行消息.mp4 [37.6 MB]
04 消息可用性(三)-方案选型.mp4 [17.1 MB]
03 消息可用性(二)-背景介绍.mp4 [40.7 MB]
📁 03.长连接网关设计(二)-连接可用性
16 长连接网关设计(二)-连接可用性-服务重启1.mp4 [30.2 MB]
15 长连接网关设计(二)-连接可用性-断线重连.mp4 [74.2 MB]
17 长连接网关设计(二)-连接可用性-服务重启2.mp4 [56.3 MB]
18 长连接网关设计(二)-连接可用性-限流.mp4 [19.1 MB]
14 长连接网关设计(二)-连接可用性-消息路由.mp4 [84.9 MB]
📁 07.分布式缓存设计(一)-低延迟&高吞吐优化策略
43 延迟优化1.mp4 [137.2 MB]
44 延迟优化2.mp4 [44.5 MB]
41 评估标准.mp4 [34.0 MB]
42 基本方案.mp4 [61.0 MB]
40 分布式缓存介绍.mp4 [14.5 MB]
45 延迟优化3.mp4 [58.5 MB]
46 高吞吐优化.mp4 [37.1 MB]
📁 02.长连接网关设计(一)-基本实现
09 基本分析.mp4 [33.8 MB]
08 背景介绍.mp4 [29.9 MB]
12 并发模型.mp4 [103.8 MB]
10 设计目标.mp4 [56.5 MB]
11 ip选择.mp4 [18.9 MB]
13 内存布局.mp4 [60.4 MB]
📁 13实现 IP Config - 长连接调度引擎&LAB2A
65 LAB2A_实现ipconf server.mp4 [16.5 MB]
64 架构设计.mp4 [145.5 MB]
63 设计目标.mp4 [29.1 MB]
66 源码参考阅读.mp4 [171.5 MB]
📁 15.实现 IM Gateway-控制长连接收发消息&LAB2C
73 源码分析.mp4 [61.8 MB]
71 设计方案.mp4 [100.7 MB]
📁 14.实现 IM Gateway-持有socket长连&LAB2B
70 gateway 源码参考阅读.mp4 [134.0 MB]
67 背景介绍.mp4 [23.6 MB]
68 socket状态机.mp4 [95.6 MB]
📁 12.LAB1-实现IM命令行客户端
61 客户端框架的设计.mp4 [37.3 MB]
62 客户端实现源码导读.mp4 [43.7 MB]
📁 11.LAB0-独立完成IM系统架构设计
59 架构总结.mp4 [182.8 MB]
📁 18.实现State Server(三)-分布式化(高可用可伸缩)
82 消息状态机的分布式化.mp4 [67.2 MB]
83 实现存算分离&单元化部署.mp4 [46.9 MB]
81 介绍.mp4 [89.2 MB]
📁 08.分布式缓存设计(二)-高可用&一致性优化策略
48 缓存高可用2.mp4 [79.1 MB]
51 缓存一致性2.mp4 [28.7 MB]
52 运维.mp4 [38.6 MB]
50 缓存一致性1.mp4 [38.2 MB]
47 缓存高可用1.mp4 [35.2 MB]
49 缓存高可用3.mp4 [11.6 MB]
📁 05.领域驱动设计(一)-设计方法
26 什么是DDD.mp4 [40.4 MB]
29 DDD应用流程.mp4 [18.8 MB]
28 名词术语.mp4 [104.2 MB]
30 登月的原始需求.mp4 [49.3 MB]
32 阿波罗2.mp4 [36.8 MB]
33 hardcore system design.mp4 [162.8 MB]
27 名词解释.mp4 [40.1 MB]
31 阿波罗1.mp4 [54.1 MB]
📁 第二部分:业务架构实现
📁 01.核心领域实现
03 IM业务编排DAG架构.mp4 [122.1 MB]适合人群
- 后端开发工程师
- 系统架构师
- 对IM系统感兴趣的开发者
🎯 学习收获
- 理解分布式IM系统设计原理
- 掌握高并发处理技术
- 提升系统架构设计能力
🎉 祝您学习愉快!



![大疆维修,无人机维修教程[66.30GB]](/_next/image?url=%2Fapi%2Fuploads%2Fb6a69810-862f-479c-a529-d66880073ebc.jpg&w=1920&q=75)


