一起学习下Netty,从Netty的相关简介,Demo的着陆,从线程模型的话,里面用到了NIO的相关知识,可以看之前的文章回顾下。
Netty是一个高性能,高可扩展性的异步事件驱动的网络应用框架,它极大地简化了TCP和UDP客户端和服务端开发等网络编程。
1.Reactor 线程模型:一种高性能的多线程设计思路。 2.Netty中自定义的channel概念,增强版的通道概念。 3.ChannelPipline职责链设计模式:事件处理机制。 4.内存管理:增强的ByteBuf缓冲区。
netty.io
网上的很多都是直接说理论,感觉很多时候直接给你对蒙圈了,其实还是从实践来出发去学习更有效果, netty的源码中,有个专门的目录里面有各种的实例,直接通过netty的源码中加入中文的注释的方式。 github.com/netty/netty/tree/4.1/example/src/main/java/io/netty/example
为了让NIO处理更好的利用多线程特性,Netty实现了Reactor线程模型。 Reator模型中有四个核心概念
EventLoop 组神实现了Executor接口,当调用executor方法提交任务时,则判断是否启动,未启动则调用内置的executor创建新线程执行run方法执行。
netty中的Channel是一个抽象的概念,可以理解为对JDK NIO Channel的增强和拓展,增加了很多属性和方法。
PS:毕竟抽象的设计模式,在学习过程中会有难懂的地方,需要根据代码去理解。主要是领会Reactor的理念。