Netty主要基于主从Reactors多线程模型做了一定的改进,其中主从Reactor多线程模型各有多个Reactor。
Netty线程模型的简单原理图:一个BOSS GROUP里面有多个主Reactor,而Worker Group中有多个从Reactor。一个NIOEventLoop就等于一个Reactor,表示用一个线程(对应一个线程,一个ServerSockerChannel, 一个Selector)去处理客户端连接事件,用Selector,监听绑定在其上的socker网络连接。BOSS GROUP中的Reactor负责处理客户端连接,WorkGroup中的Reactor主要负责处理READ事件。
Netty线程模型的详细原理图:
1.在WorkGroup中的某个Reactor(NioEventLoop,是下图中NioEventLoopGroup中的一个) 通过selector获取到发生事件的SocketChannel后,需要通过调用handler进行处理,Netty中对于handler的处理是用了pipeline,一个pipeline里面包括了多个handler, 这里应该是用了职责链模式,对SocketChannel进行处理。
2........
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)