欢迎光临散文网 会员登陆 & 注册

从零带你写Netty:深入学习Netty源码

2023-06-24 09:27 作者:陈清风扬  | 我要投稿

自我介绍:我是陈清风扬,一个工作七年的程序员,热爱钻研技术。对操作系统,编译器,虚拟机和各种 Java 后端框架的源码都深入研究过,比如 Spring、MyBatis、Tomcat、Netty、RocketMQ、Dubbo、XXL-JOB等等。希望能打造一个渐进式的从零带你写框架教学系列。Netty 是该系列刚刚完结的第一套课程。虽然市面上有一些 Netty 的教学资料,但对于我自己的这个教学课程,如果稍微夸张一点,可以说不管大家以前学习 Netty 到什么程度,我的这个课程足以成为大家学习 Netty 的终点了,至少是核心知识的终点。因为这个课程几乎包含了 Netty 中全部有价值的知识点。比如异步与回调的编程思想、各种设计模式、Reactor 线程模型、各种高性能的数据结构、时间轮、对象池、内存分配、内存池等等,只要是 Netty 中值得称道的技术,这门课都涉及到了,这一点从目录也可以看出来。

简单介绍:从零带你写Netty,已更新完结,配套视频完整,代码注释详细,渐进式教学,共迭代20个版本代码

配套视频完善,时常超过25个小时,仅内存池章节录制就达到7个小时。

目录:

1.NIO 模式下,如何提升服务端工作效率?

2.掌握Netty的核心——Reactor线程模型

3.掌握 EventLoop,EventExecuotr,Group 的关系

4.引入 Promise,实现信息在线程间的传递

5.添加 addListener,分析回调函数的真正执行者

6.引入 Channel,完善 Channel 体系

7.引入 Unsafe,实现收发数据流程

8.引入 ChannelConfig,掌握 option 参数原理

9.添加 attr 和 childAttr,让 Channel 实现 Map 功能

10.引入 AbstractBootstrap,再用抽象类,完善启动类体系

11.运用责任链模式,引入 ChannelPipeline

12.引入 ChannelHandler,再次体会回调函数

13.回顾位运算,掌握 Handler 处理数据机制

14.重构 Channel,完善 ChannelHandler 中的回调方法

15.彻底掌握 ChannelHandler 中各种方法的回调时机

16.完善 Netty 定时任务体系,实现真正异步的 connect 方法

17.引入 IdleStateHandler,实现心跳检测

18.时间轮登场,学习时间轮中的数据结构

19.引入 FastThreadLocal 体系,掌握其设计原理

20.引入对象池,掌握对象池的设计理念和执行流程

21.学习 ByteBuf 的设计原理

22.复刻Netty内存池,详解 Netty 的内存分配

23.运用弱引用,实现 Netty 的内存泄漏检测

24.重写 NioEventLoop,学习 Netty 处理 IO 事件全流程

25.重构 read 方法,池化技术的运用和实践

26.重构 writeAndFlush 方法,完善细节,详解 Netty 发送数据流程

27.解决粘包半包问题,正确解析数据

28.优雅停机和释放资源

从零带你写框架系列

这个是我正在录制的教学课程,是一个从零带你写框架系列,Netty 只是该系列刚刚完结的第一套课程。已更新完结,配套视频完整,代码注释详细,渐进式教学,共迭代20个版本代码。接下来会更新XXL-JOB,然后是Spring,然后是Java编译器Javac,Javac编译器本身就是Java写的,所以这里也会采用Java语言实现,接着是JVM虚拟机,虚拟机本身是C++编写的,所以这里会参照源码,以C++实现。这些都是从零手写来实现教学的,并且采用的是渐进式教学模式,每门课程的代码都会迭代数十版本,学习曲线将会十分平缓。

以上公布的课程都会仿照源码实现,并非只是参照编写思路,然后简单编写实现。在我的从零带你写框架教学课程中,所有手写的框架都是仿照源码复刻,核心功能齐全,是真正意义的手写实现,比如手写Netty就做到了对象池和内存池的完全复刻,而JVM虚拟机将会实现核心的垃圾回收机制。

课程是买断制的,也就是说,200块钱买了这个从领带你写框架系列课程,可以学习系列中的所有课程。这时候可能会有朋友有些疑问,觉得我把价格定的太低了,以至于怀疑课程质量,如果大家不放心可以先加微信群,目前群里已经有一些朋友买课了。而且Netty也更新完了,可以问问大家的感受。就Netty来说,绝对称得上精品。而我之所以把价格定的不高,是因为后面的课程还没实现,有点给大家画饼的意思,大家买我的课,是纯粹的信任和支持,所以,我不会以高价卖给大家。还有一个原因,我在群里也像买课的朋友解释了,大家可以看下面的截图。

当前,这就意味着等今后所有课程都实现了之后,这个系列的价格可能就会涨上去了。目前这个系列准备了下面几个课程,都是我深入研究过的,XXL-JOB其实技术含量并不是很高,之所以出现在这里,是因为我刚刚更新完Netty,耗费了大量的精力,需要一个小巧的框架来缓一缓,所以把XXL-JOB引入进来了。这五门课程更新完毕后,会引入更多的手写框架课程。

接下来要更新的就是XXL-JOB框架,会从零渐进式地手写这个框架。

课程目录:

从零带你写Netty:更新完结,配套视频完整,代码注释详细,渐进式教学,共迭代20个版本代码

从领带你写XXL-JOB

从零带你写Spring

从领带你写Javac编译器

从领带你写JVM虚拟机

淘宝购买链接:购买链接

各位朋友可通过我加微信群

微信号:chenqingfengyang

微信二维码:

下面是写好的前三节课文档的试读链接:

第一课:https://www.yuque.com/u26328320/dd1m2b/cbypycomnxh738pa?singleDoc# 《从Reactor线程模型看见netty的核心(一)》

第二课:https://www.yuque.com/u26328320/dd1m2b/wta0drely6l5lxlh?singleDoc# 《从Reactor线程模型看见netty的核心(二)》

第三课:https://www.yuque.com/u26328320/dd1m2b/ks3rncburzbpdmp0?singleDoc# 《引入NioEventLoopGroup》


从零带你写Netty:深入学习Netty源码的评论 (共 条)

分享到微博请遵守国家法律