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,是连接这些组件的核心。

上一篇下一篇

猜你喜欢

热点阅读