拿下Netty这座城,从现在开始!

共 1841字,需浏览 4分钟

 ·

2020-07-15 16:19

你好,我是彤哥,我花了八个月的时间终于把Netty写完了。

其实,我刚学习 Netty 的时候,也是很迷茫的,直到有一天,一个同事收到了阿里的 offer,他要去阿里做中台了,临走前他偷偷地告诉我,多看看 Netty,特别是源码。

之后,我把市面上有关 Netty 的书籍和博客几乎全部看了一遍,并跟着书中的示例边看边练,但是,最后,我发现,在 Netty 的知识方面,我只是从一个学徒变成了一个熟练工,对 Netty 的理解还是谈不上有多深刻,因为很多书籍或者博客对 Netty 的讲解都停留在使用的角度,对于核心知识和底层原理,讲解得很少,或者说是很不全面。

所以,我决定自己动手,把 Netty 的源码撸一遍,没多久,我就发现,我不仅在 Netty 方面的知识飞速增长,对于 Java 底层的很多原理也理解得更透彻了,得益于此,我后面进入了国内某互联网游戏公司担任平台架构的设计与实现。

这是我自己学习 Netty 的经历,现在,你可以想想你的情况。

  • 是不是一直想学习 Java 网络编程,却不知道怎么入门?

  • 是不是看完《Netty 实战》,还是只会写入门级的示例?

  • 是不是学习其他开源框架,一深入到通信层就无所适从?

  • 是不是面试过程中,提及 Netty,只能简单地说说请求的执行流程?对于更底层的线程池、对象池、内存池却一问三不知?

如果你是这种情况,其实你并不孤独,这不是你一个人遇到的问题,在工作中,我喜欢与人交流,发现很多同学,不管新人,还是老人,对 Netty 的掌握都停留在表面。

还是上面那位牛人,他去阿里后,遇到的第一个挑战是他的领导让他一个星期内学习完 Dubbo,并做成 PPT 分享给全组人员,对于从来没学习过 Dubbo 的他,你可能会说,这太难了,几乎不可能完成。然而,他学习 Dubbo 只花了五天时间,剩余两天做成 PPT,汇报时,领导给了个完美。

我觉得这其中他对 Netty 的深入理解占了很大的比例。后面,他跟我说,其实,Java 领域学来学去就那么些东西,最重要的还是掌握底层核心知识,这些核心知识掌握了,学习其他东西真的能事半功倍,这也是他能快速学习并获得成功的秘诀。

那么,作为 Java 开发者,应该掌握哪些底层核心知识呢?

无外乎就是反射、代理、多线程这些东西,当然,还有 NIO,那么,如何快速地学习并掌握这些知识呢?

我认为通过源码是一种不错的途径,不管是 Java 本身的源码,还是开源框架的源码。

而 Netty 作为 Java 网络编程领域的事实标准,无疑是最合适的。
84f8ff467cff90ddb3cf8d441e403c96.webp

通过上图,可以看到,在 Java 中,很多大家熟悉的框架都在使用 Netty,而且,这些框架遍布 Java 的各个领域,包括但不仅限于大数据、RPC、消息队列、搜索引擎、数据库等。

所以,我想做一个关于 Netty 的课程,希望通过这个课程能够让你真正掌握到 Netty 的底层核心知识。

那么,我将怎么设计这个课程呢?

我根据自己学习和使用 Netty 的经验,将整个课程分成六个模块来讲解:
55d9a9ef4ed999427ec05cac54cfe8be.webp

基础知识,介绍 Netty 的发展历史,并学习 Java 网络编程的基础知识,打好基础,方能事半功倍;

源码剖析 —— 数据流向,从数据流向的角度剖析源码,包含服务启动、接收数据、关闭连接等,快速掌握 Netty 应用运行的基本流程,这一部分源码可以使用泛读的技巧,快速阅读,了解大致流程;

源码剖析 —— 核心知识,从核心知识的角度剖析源码,包含内存池、对象池、线程池等,深入底层,掌握核心要点,这一部分源码需要精读,对每一个知识点死磕到底;

项目实战,从软件开发生命周期的角度,介绍如何使用 Netty 开发一个生产级的游戏项目;

实战进阶,对实战项目进行不断调优,使其更稳定、更快速、更安全、更可靠,并介绍如何快速排查生产问题;

课程总结,对整个课程做一个总结和回顾。

我很感激当年偷偷告诉我要看 Netty 的那位同事,那无疑是我人生中非常重要的转折点。

没有那位同事的悄悄话,可能就没有今天的我,希望这个专栏也能成为你的人生的一个转折点。

我希望通过这个专栏,不仅能够帮你学习到 Netty 的底层核心知识,更能加深对 Java 底层核心知识的理解,帮你拿下 Netty 这座城,度过职场和人生的重要时刻,come on!

如果你觉得彤哥的源码写得还不错,可以看看这部Netty专栏:

识别二维码或点击阅读原文可查看试读章节。

浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报