这是我参与8月更文挑战的第31天,活动详情查看:8月更文挑战
前言
今天是8月31号了,八月最后一天,时间是过得真快啊,八月的更文挑战,第一天我就立了 flag,更文满勤,现在是最后一天了,也是更文挑战的最后一篇文章,不知道写些啥了,每天写一篇,而且不是水文,真的有点难,你说是不是,哪有那么多的东西写,就算有知识点写,时间也不够啊。白天要上班,只能利用休息时间、晚上、周六日来写,这个八月基本上都是在写文章,挺累的...话有点多,嗯,进入今天的正文吧。
正文
今天想跟大家分享一下关于Netty
的知识点。作为一名 Java后端开发人员,你还不会 Netty
真的有点说不过去了,如果你要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。
历史文章
八月份的更文挑战,我的文章主要是关于Netty
的知识点分享,如果你还没看我的文章,如果你对Netty
还是一知半解,我希望你能认真看一下我总结的关于Netty
知识点,相信会对你有帮助。相关链接如下:
Netty 源码分析系列(五)ChannelPipeline源码分析
Netty 源码分析系列(六)字节缓冲区 ByteBuf(上)
Netty 源码分析系列(七)字节缓冲区 ByteBuf(下)
Netty 源码分析系列(十五)自定义解码器、编码器、编解码器
推荐
关于Netty的知识点,还有很多,后期我们再来慢慢分享。小伙伴们,推荐几个好的资料给你们吧。
喜欢看书的小伙伴们, 《Netty原理解析与并发实战》 这本书还是很不错的,我已经看完了,真的挺不错的。
喜欢看视频的小伙伴们,去某站一搜,视频很多,其中我觉得讲解的最详细的应该是 :尚硅谷Netty教程(B站最火,人气最高,好评如潮)
视频讲解的真的很详细,对于初学者帮助应该是很大的,学进去,自己再结合实践去理解。
关于Netty
有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Proxy服务器,MySQL的Proxy服务器等等。
如果你想知道Nginx
是怎么写出来的,如果你想知道Tomcat
和Jetty
是如何实现的,如果你也想实现一个简单的Redis服务器
,那都应该好好理解一下Netty
,它们高性能的原理都是类似的。
Netty 是建立在NIO基础之上,Netty在NIO之上又提供了更高层次的抽象。
在 Netty 里面,Accept连接可以使用单独的线程池去处理,读写操作又是另外的线程池来处理。
Accept
连接和读写操作也可以使用同一个线程池来进行处理。而请求处理逻辑既可以使用单独的线程池进行处理,也可以跟放在读写线程一块处理。线程池中的每一个线程都是NIO线程。用户可以根据实际情况进行组装,构造出满足系统需求的并发模型。
Netty 提供了内置的常用编解码器,包括行编解码器,前缀长度编解码器,可重放解码器,HTTP编解码器,WebSocket消息编解码器等等。
Netty 提供了一些列生命周期回调接口,当一个完整的请求到达时,当一个连接关闭时,当一个连接建立时,用户都会收到回调事件,然后进行逻辑处理。
Netty 可以同时管理多个端口,可以使用NIO客户端模型,这些对于RPC服务是很有必要的。
Netty 除了可以处理 TCP Socket之外,还可以处理 UDP Socket。
在消息读写过程中,需要大量使用 ByteBuffer,Netty 对ByteBuffer
在性能和使用的便捷性上都进行了优化和抽象。
总之,Netty是Java程序员进阶的必备神奇。如果你知其然,还想知其所以然,一定要好好研究下Netty。
寄语
本人从事 Java开发四年的时间,一开始也是很迷茫,对于技术呢,完成业务需求就行,没啥追求,后来呢,一年过去,技术上没啥长进,出去面试呢,面试官问的大部分我都不会,找工作也四处碰壁,也许是我要的工资跟我的能力匹配不上,找了一个月都没找到工作,然后就是每天背面试题咯,总结知识点咯,最终是面试上了。经过那一段整天出去面试,碰壁,我才觉得,闲暇时间多学点东西,整天摸鱼最后摸得自我感觉良好,其实啥也不会。面试官稍微问深一点,一脸蒙B。
所以呢,我建议刚开始工作的、有的还是大学生的小伙伴,珍惜时间,少摸鱼,多看点书。没事也可以出去面试,看看自己的市场价值和能力的欠缺。对自己有一定的认知吧,有的喜欢技术,那就往架构师的方向去努力;有的喜欢与人沟通,对业务比较感兴趣,可以往产品经理努力呀;其实程序员这个行业现在也不是很吃香了,因为中国现在不缺程序员了。转行的也大有人在,希望我们都能喜欢我们现在的工作。不仅能赚钱,如果你能享受其中,那就更完美了。
最后
希望大家都能干自己喜欢干的事情,我相信掘金的小伙伴们都是热爱学习的,让我们一起前进吧。
我是一个正在被打击还在努力前进的码农。如果文章对你有帮助,记得点赞、关注哟
,谢谢!