共计 1747 个字符,预计需要花费 5 分钟才能阅读完成。
你好,我是彤哥,技术公号主“彤哥读源码”的运营者。
其实,我刚学习 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 网络编程畛域的事实标准,无疑是最合适的。
通过上图,能够看到,在 Java 中,很多大家相熟的框架都在应用 Netty,而且,这些框架遍布 Java 的各个领域,包含但不仅限于大数据、RPC、音讯队列、搜索引擎、数据库等。
所以,我想做一个对于 Netty 的课程,心愿通过这个课程可能让你真正把握到 Netty 的底层外围常识。
那么,我将怎么设计这个课程呢?
我依据本人学习和应用 Netty 的教训,将整个课程分成六个模块来解说:
基础知识 ,介绍 Netty 的倒退历史,并学习 Java 网络编程的基础知识,打好根底,方能事倍功半;
源码分析——数据流向 ,从数据流向的角度分析源码,蕴含服务启动、接收数据、敞开连贯等,疾速把握 Netty 利用运行的根本流程,这一部分源码能够应用泛读的技巧,疾速浏览,理解大抵流程;
源码分析——外围常识 ,从外围常识的角度分析源码,蕴含内存池、对象池、线程池等,深刻底层,把握外围要点,这一部分源码须要精读,对每一个知识点死磕到底;
我的项目实战 ,从软件开发生命周期的角度,介绍如何应用 Netty 开发一个生产级的游戏我的项目;
实战进阶 ,对实战我的项目进行一直调优,使其更稳固、更疾速、更平安、更牢靠,并介绍如何疾速排查生产问题;
课程总结 ,对整个课程做一个总结和回顾。
点击链接可查看课程详情 https://www.imooc.com/read/82
我很感谢当年偷偷通知我要看 Netty 的那位共事,那无疑是我人生中十分重要的转折点。
没有那位共事的悄悄话,可能就没有明天的我,心愿这个专栏也能成为你的人生的一个转折点。
最初,我心愿通过这个专栏,不仅可能帮你学习到 Netty 的底层外围常识,更能加深对 Java 底层外围常识的了解,帮你拿下 Netty 这座城,度过职场和人生的重要时刻,come on!
关注公众号“彤哥读源码”,解锁更多源码、根底、架构常识!