这门课讲的是 Netty 的源码。如果你只是想在项目里用 Netty 写个能跑的客户端和服务端,市面上很多入门材料更省事;但如果你已经用过 Netty,心里一直有个疙瘩——为什么加个 handler 就能处理粘包、为什么 EventLoop 一个线程能扛住那么多连接、pipeline 里那些 inbound/outbound 到底按什么顺序走——那这门课值得你花时间慢慢啃。

先掂量一下自己的底子

坦白说,这不是一门零基础课。看之前你最好满足两条:一是写过 Java 网络程序,知道 BIO、NIO、Selector 大概在干什么;二是真的动手用过 Netty,哪怕只是照抄过一段 Echo 示例。如果这两条都不满足,硬看源码剖析会非常痛苦,讲解里默认你见过这些 API,直接就开始翻类、追调用链了。

反过来,如果你已经能熟练用 Netty 搭服务,只是没看过底层,那这门课正好补上那块空白。学习节奏建议慢:一讲源码往往对应好几个类、几层调用,听完不自己翻一遍代码,等于没听。我建议每看完一讲,就打开 IDE 把讲到的类找出来,跟着断点走一遍,哪怕一次只走通一条路径。

从哪几讲切入,哪些可以先跳

开头的综述别急着跳过,它给的是整门课的坐标,告诉你后面会沿着哪几条线走。接着的核心部分,建议按「先事件循环、再 pipeline、后编解码」的顺序看。事件循环和线程模型是理解一切的地基,地基没打牢,后面 pipeline 里 handler 的执行顺序你只会越看越乱。

粘包半包那一讲是全课的重点之一,也是最容易一看就懂、一写就错的地方。它既讲 Netty 提供了哪几种解码器,也讲这些解码器内部怎么攒数据、怎么切分,配合你自己写一个自定义协议的编解码练习,效果最好。

后半段有几个偏应用的章节,会拿 Cassandra 这类真实项目当例子,讲它们怎么用 Netty。这些内容可以当作选读:如果你手头的场景和它接近,收益很大;如果只是打基础,完全可以先放一放,等主线吃透了再回头翻。最后的回顾总结也建议留到最后再看,那时你才有东西可回顾。

资料怎么配合着用

课程配的资料里既有视频也有文档图示。我的用法是:先看一遍视频,听讲解把思路顺下来;再对着图示把关键类的结构和调用关系理清楚,图比视频更适合停下来反复看;最后一定回到源码本身。视频和文档都是拐杖,真正让你记住的是自己跟着断点走过的那些调用栈。

不要贪多。一次只追一条线,比如这次只搞明白一个连接接入后事件怎么分发到 handler,下次再看数据到达时怎么在 pipeline 里流动。线追得多了,脑子会糊,反而什么都留不下。

承认有些东西第一次学不会

Netty 源码里有些部分,比如内存池、FastThreadLocal 这些,涉及不少底层细节和设计取舍。第一次听很可能云里雾里,这很正常,不是你笨。遇到这种地方,先记下它解决了什么问题、大概怎么解决的,具体实现可以以后有需要再回来抠。学习本来就不是一遍过的事,允许自己在某些章节上「先欠着」,比卡在那里反复较劲要健康得多。

这门课更适合当成一本可以反复翻的参考,而不是一次刷完的视频。慢慢来,能带走几条真正理解透的调用链,就已经很值了。

极客时间 博健 Netty源码剖析与实战

Netty源码深度解析,实战提升网络编程能力

编辑点评

深入Netty源码,剖析核心原理,实战案例丰富,适合有网络编程基础的开发者。

⭐ 编辑推荐

本课程由极客时间博健主讲,全面解析Netty源码,涵盖实战案例,助你提升网络编程能力。

课程亮点

Netty源码深度解析
实战案例丰富
提升网络编程能力

课程目录

极客时间 - 博健 - Netty源码剖析与实战文档.png  [493.5 KB]
02丨内容综述.mp4  [77.7 MB]
35丨引入响应分发完善客户端.mp4  [407.1 MB]
33丨实现客户端编解码.mp4  [60.6 MB]
13丨源码剖析:Netty对处理粘包-半包的支持.mp4  [515.6 MB]
55丨Cassandra如何使用Netty?.mp4  [179.8 MB]
60丨课程回顾与总结.mp4  [98.5 MB]
31丨实现服务器端编解码.mp4  [327.0 MB]
01丨课程介绍.mp4  [169.1 MB]
12丨TCP粘包-半包Netty全搞定.mp4  [401.0 MB]
57丨Hadoop如何使用Netty?.mp4  [237.6 MB]
48丨安全增强:设置“高低水位线”等保护好自己.mp4  [166.5 MB]
39丨调优参数:图解费脑的三个参数.mp4  [151.4 MB]
42丨跟踪诊断:让应用内存不“泄露”?.mp4  [395.5 MB]
04丨为什么舍近求远:不直接用JDKNIO?.mp4  [140.3 MB]
47丨优化使用:为不同平台开启native.mp4  [342.3 MB]
25丨源码剖析:业务处理.mp4  [238.8 MB]
20丨源码解析:Netty对堆外内存和内存池的支持.mp4  [394.3 MB]
16丨keepalive与idle监测.mp4  [355.7 MB]
22丨源码剖析:启动服务.mp4  [214.4 MB]
28丨源码剖析:关闭服务.mp4  [373.5 MB]
24丨源码剖析:接收数据.mp4  [384.2 MB]
58丨赏析Netty之美.mp4  [139.6 MB]
43丨优化使用:用好自带注解省点心.mp4  [338.9 MB]
19丨Netty如何玩转内存使用.mp4  [241.5 MB]
53丨安全增强:拿来即用的SSL-抓包暴露本质.mp4  [281.5 MB]
07丨Netty的现状与趋势.mp4  [169.8 MB]
17丨源码剖析:Netty对keepalive与idle监测的支持.mp4  [517.0 MB]
03丨揭开Netty面纱.mp4  [232.7 MB]
32丨实现一个服务器端.mp4  [174.1 MB]
38丨调优参数:权衡Netty核心参数.mp4  [528.1 MB]
09丨源码剖析:Netty对I-O模式的支持.mp4  [267.2 MB]
49丨安全增强:启用空闲监测.mp4  [381.5 MB]
44丨优化使用:“整改”线程模型让响应健步如飞.mp4  [144.6 MB]
59丨如何给Netty贡献代码?.mp4  [280.8 MB]
26丨源码剖析:发送数据.mp4  [210.0 MB]
27丨源码剖析:断开连接.mp4  [430.3 MB]
10丨Netty如何支持三种Reactor?.mp4  [255.6 MB]
34丨完成一个客户端雏形.mp4  [397.4 MB]
15丨源码剖析:Netty对常用编解码的支持.mp4  [553.1 MB]
45丨优化使用:增强写,延迟与吞吐量的抉择.mp4  [217.1 MB]
40丨跟踪诊断:如何让应用易诊断?.mp4  [375.0 MB]
18丨Netty的那些“锁”事.mp4  [355.2 MB]
36丨Netty编码中易错点解析.mp4  [417.6 MB]
30丨案例介绍和数据结构设计.mp4  [88.9 MB]
29丨遍写网络应用程序的基本步骤.mp4  [119.4 MB]
51丨安全增强:少不了的自定义授权.mp4  [356.8 MB]
05丨为什么孤注一掷:独选Netty?.mp4  [80.0 MB]
11丨源码剖析:Netty对Reactor的支持.mp4  [422.3 MB]
46丨优化使用:如何让应用丝般“平滑”?.mp4  [499.8 MB]
23丨源码剖析:构建连接.mp4  [374.4 MB]
50丨安全增强:简单有效的黑白名单.mp4  [338.5 MB]
14丨常用的“二次”编解码方式.mp4  [227.3 MB]
08丨Netty怎么切换三种I-O模式?.mp4  [151.0 MB]
21丨Netty代码编译与总览.mp4  [442.8 MB]
37丨调优参数:调整System参数夯实基础.mp4  [387.4 MB]
54丨安全增强:拿来即用的SSL-轻松融入案例.mp4  [226.7 MB]
41丨跟踪诊断:应用能可视,心理才有底.mp4  [329.7 MB]
56丨Dubbo如何使用Netty?.mp4  [197.0 MB]
06丨Netty的前尘往事.mp4  [99.1 MB]
52丨安全增强:拿来即用的SSL-对话呈现表象.mp4  [178.9 MB]

适合人群

  • 有网络编程基础的开发者
  • 对Netty感兴趣的程序员

学习收获

掌握Netty源码原理
提升网络编程技能
解决实际网络编程问题

祝您学习愉快!

学有所成,前程似锦!