Netty 是目前使用网络编程的首选,很多的框架都是基于Netty进行开发的。
比如Spring5的WebFlux
Netty一共有3个主要部分组成:
1. Netty核心,传输服务层,协议支持层,以及高效的数据结构ByteBuffer
2.统一网络通信的API
3.事件驱动模型
Netty中又有5个核心概念
1.Channel 在Netty中不再对Socket本身进行操作,而是对Channel进行操作,每一个Channel都是非阻塞的,代表着一个链接,可以进行IO的写入/读取操作
2.ChannelFeature 获取当前Channel的状态,是否已经准备好,是否已经完成。也可以在ChannelFeature上增加一个回调,当操作完成后自动执行
3.Event&Handel 核心功能,事件可以找到入站和出站的数据流
4.Encode&Decode 主要是编解码,将数据通过ByteBuffer进行传输等
5.ChannelPiePeline 将一串向相同处理方式的事件挂在同一个ChannelPiePeline 上,这个我不太清楚理解的对不对。