当前位置:首页 > Web开发 > 正文

netty模型简介

2024-03-31 Web开发

Netty工作原理图

  

技术图片

netty抽象出了两组线程池,BossGroup专门负责客户端 的连接,WorkerGroup专门负责网络读写。

BossGroup和WorkerGroup 类型都是NioEventLoopGroup

NioEventLoopGroup相当于一个事件循环组,这个组中含有多个事件循环,每一个事件循环是一个NioEventLoop

NioEventLoop表示一个不断循环的执行处理任务的线程,每个NioEventLoop都有一个selector,用于监听绑定在其上socket网络通信

NioEventLoopGroup可以有多个线程,即可以含有多个NioEventLoop

每个Boss对应的NioEvenetLoop都会执行以下三步:

轮询accept事件,

处理accept事件,与client建立socket连接,生成NioSocketChannel,并将生成的NioSocketChannel注册到某个worker NioEventLoop上的selector上。

处理任务队列中的任务,即runAllTasks

每个worker NioEventLoop循环执行步骤:

轮询read/write事件

处理io事件,即read ,write事件,,在对应的NioSocketChannel处理

处理任务队列中的其它任务

每个worker NioEventLoop会使用PipeLine管道处理,PipeLine中包含了Channel,即通过PipeLine可以获取对应的Channel, 管道中维护了很多的处理器Handler

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/41918.html