Netty:
JOBSS提供的一个由java开发的高性能 异步事件驱动的NIO框架,该框架支持多路复用I/O,阻塞/非阻塞I/O以及同步I/O。
类似的还有MINA框架
重要的几个概念:
1.channel(通道):客户端和服务端得以传输信息的通道,它维护套接字或者可进行IO操作的组件。
2.buffer(缓冲区):封装了java NIO框架中的缓存结构
3.ChannelHandler(操作通道):在实际的开发中很少直接操纵Channel,而是通过ChannelHandler来间接操纵Channel。
Handler实际上分为两种,Inbound和Outbound
4.ChannelPipline(通道链表):可以把ChannelPipeline看成是一个ChandlerHandler的链表,当需要对Channel进行某种处理的时候,Pipeline负责依次调用每一个Handler进行处理。每个Channel都有一个属于自己的Pipeline,调用Channel#pipeline()方法可以获得Channel的Pipeline,调用Pipeline#channel()方法可以获得Pipeline的Channel。
5.ChannelHandler(过滤器):主要提供的类 ChannelHandlerAdapter/ExchangeHandler等
6.ChannelHandlerContenxt
ServerBootStrap 服务器端启动器
WokThread 工作线程
BossThread主线程
整个框架中主要使用到了责任链和适配器模式
ChannelPipline中由一个个的Channel进行处理形成一个新的数据状态