大家都用 Netty,为什么不用Java NIO?
共 1116字,需浏览 3分钟
·
2020-06-09 23:24
Java 1.4起,jdk支持了NIO(NEW IO),因NIO(os nonblocking)的非阻塞式工作方式,让应用服务器可以极大的优化线程模型,相比传统的阻塞式IO线程和链路一对一的模式,NIO只需少量的线程即可处理所有的链路,这对广大的java开发者来说是一大福音,基于NIO能开发出更高效的网络应用。
然而使用JDK原生的api开发NIO,编程模型是非常复杂的,开发者需要理解Selector、Channel、ByteBuffer三大组件,此外JDK原生NIO实现上还存在一些稳定性问题。netty把三大组件交互代码封装在框架内部有效的简化了编程模型让使用者能够更高效的开发出NIO网络应用,保障了系统的稳定性。
但是伴随新的问题到来,对于开发者,框架是易于使用的,屏蔽了底层细节,换来的是对原理的深入理解不够,对性能调优和理论的淡化,在很多优秀的线上产品dubbo、spark、zookeeper、elasticSearch等等,使用了netty作为底层通信IO框架支持后,对于netty的原理,底层原理的关注越发急迫,这在面试环节尤为突出。
图不清楚,没关系扫下方二维码,领取高清图片
不慌,划重点:
最近栈长得知【马士兵教育】要开一期关于【Netty底层】的训练营!
马士兵是谁?
马士兵
马士兵老师,清华大学,推动Java生根中国,推动大数据生根中国,推动AI生根中国,视频课程下载次数累计数27000万次。
训练营时间:
6月10日-6月11日,20:00训练营全程直播,本号粉丝只需2分钱,学前必看预习资料。
开营前:发放预习的基础资料《TCP/IP网络通信原理》长按扫码,领预习资料,入群参与仅限前200人第一天:
操作系统中的BIO/NIO/SELECT/POLL/EPOLL实现
JDK中的NIO是什么
什么是selector、bytebuffer、channel
netty的reactor模型原理
netty中使用了那些"NIO"
Eventloopgroup、pipeline、handler是啥
netty如何解决粘包拆包
训练营时间:6月10日-6月11日,20:00训练营全程线上直播,只需2分钱,提前预习资料吸收更快!
扫码领预习资料,仅限前200名
(内容的价值取决于您的行动,千万莫做收藏家)
参加直播课,还有机会领取大奖,奖品有:
再强调一遍,扫码:(1)免费领预习资料;(2)参与小游戏,得《多线程与高并发》书籍;(3)参与直播课程,免费抽大奖;
扫码领预习资料,仅限前200名遇到扫码频繁,请在识别一次
(内容的价值取决于您的行动,千万莫做收藏家)
扫上方“二维码”,0.02元购课,4个小时,值得!!!