netty中的概念
2018-12-20 本文已影响0人
xhrg
Channel
Channel是netty中的通讯管道,类似于水管流水。其中一端 是client,一端是server,channel写入数据会从一端到一端。而响应则会在回调函数中从channel中读取到数据。
NioServerSocketChannel
这里的NioServerSocketChannel其实就是对应于服务端创建的Channel,创建该NioServerSocketChannel的时候,会在其中创建ChannelPipeline(DefaultChannelPipeline).
NioSocketChannel
ChannelPipeline
每次新建一个Channel都会和一个ChannelPipeline绑定,这种绑定是固定的,无法分离的。
ChannelPipeline是一个双向链表,双向链表中主要是可以addFirst和addLast,ChannelPipeline中放的是ChannelHandler,
ChannelHandler类似于水流的一个闸门,水流会经过,这个时候,可以处理数据。ChannelHandler接口下有很多更细化的接口
ServerBootstrap|Bootstrap
简单的启动辅助类,作用是组合一些组件
NioEventLoopGroup
是一个线程池,主要是存放NioEventLoop
NioEventLoop
是一个单线程的事件触发器,该类继承了SingleThreadEventLoop.
在ServerBootstrap(AbstractBootstrap)中的initAndRegister会创建Channel并且关联NioEventLoop,是连接这些组件的核心。