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底层】的训练营!训练营时间:4月25日-4月26日,20:00

第一天:

  1. 操作系统中的BIO/NIO/SELECT/POLL/EPOLL实现

  2. JDK中的NIO是什么

  3. 什么是selector、bytebuffer、channel

  4. netty的reactor模型原理

第二天:

  1. netty中使用了那些"NIO"

  2. Eventloopgroup、pipeline、handler是啥

  3. netty如何解决粘包拆包

看我主页即可参与哦~~~~~~