netty总览图-核心组件
netty核心概念关系图
Bytebuf: 对java nio中ByteBuffer的抽象
每个Channel代表了一种能够用于IO操作的实体,例如socket, 文件等等
每个channel都有一个pipeline, pipeline的作用是处于和这个channel相关的所有IO事件
每个pipeline中有一系列的channelHandler, 每个channelHandler是真实处理IO事件的地方, 并把这个事件沿着Pipeline传播. ChannelHandler可大体分为两类,一类是InboundHandler,也就是处理进来的消息的处理器,另一种则是OutboundHandler, 是用来处理出去的消息的.
每个channelHandler都有一个相关联的channelHandlerContext, 这个上下文的作用就是让channelHandler可以和它的pipeline以及其它的channelHandler之间进行交互.
每个channel都会被注册到EventLoop中, eventLoop会负责处理该channel的所有IO事件, 通常情况下,每个eventLoop会管理多个channel
这里可以类比下NIO的编程,这里的EventLoop类似于带有selector组件的ServerSocketChannel, 它负责多个channel的IO事件.EventLoopGroup是eventLoop的集合,它管理着所有的eventloop的生命周期