关于java:拿下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网络编程畛域的事实标准,无疑是最合适的。

通过上图,能够看到,在Java中,很多大家相熟的框架都在应用Netty,而且,这些框架遍布Java的各个领域,包含但不仅限于大数据、RPC、音讯队列、搜索引擎、数据库等。

所以,我想做一个对于Netty的课程,心愿通过这个课程可能让你真正把握到Netty的底层外围常识。

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

我依据本人学习和应用Netty的教训,将整个课程分成六个模块来解说:

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

源码分析——数据流向,从数据流向的角度分析源码,蕴含服务启动、接收数据、敞开连贯等,疾速把握Netty利用运行的根本流程,这一部分源码能够应用泛读的技巧,疾速浏览,理解大抵流程;

源码分析——外围常识,从外围常识的角度分析源码,蕴含内存池、对象池、线程池等,深刻底层,把握外围要点,这一部分源码须要精读,对每一个知识点死磕到底;

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

实战进阶,对实战我的项目进行一直调优,使其更稳固、更疾速、更平安、更牢靠,并介绍如何疾速排查生产问题;

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

点击链接可查看课程详情https://www.imooc.com/read/82

我很感谢当年偷偷通知我要看Netty的那位共事,那无疑是我人生中十分重要的转折点。

没有那位共事的悄悄话,可能就没有明天的我,心愿这个专栏也能成为你的人生的一个转折点。

最初,我心愿通过这个专栏,不仅可能帮你学习到Netty的底层外围常识,更能加深对Java底层外围常识的了解,帮你拿下Netty这座城,度过职场和人生的重要时刻,come on!

关注公众号“彤哥读源码”,解锁更多源码、根底、架构常识!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理