网络模型优化历程简介
Netty模型介绍:
-
Netty网络模型包含两组线程池,分别是BossGroup 和 workGroup
- bossGroup负责客户端连接,WorkGroup 负责网络读写
- BossGroup和WorkGroup的类型都是NIOEventLoopGroup
- NIOEventLoopGroup 相当于一个事件循环组,这个组中含有多个事件循环,每一个事件循环都是NioEventLoop
- NioEventLoop表示一个不断执行处理任务的线程,每个NioEventLoop都有一个Selector,用于监听绑定在其上的socket网络通讯
- NIOEventLoopGroup可以有多个线程,即可以包含多个NioEventLoop
- 每个Boss NioEventLoop 循环执行的步骤如下
- 轮询accept事件
- 处理accept事件,与client建立连接,生成NioServerSocketChannel,将其注册到work NIOEventLoop上的selector
- 处理任务队列的任务,即runAllTask
- 每个Work NioEventLoop 循环执行的步骤如下
- 轮询read、write事件
- 处理I/O事件,在对应的NioSocketChannel中处理
- 处理任务队列的任务,即runAllTask
- 每个worker NioEventLoop处理业务时,会使用pipeline(管道),pipeline中包含channel
No Comments