掀起Netty头盖骨主线篇之Netty工作流程图

1,985 阅读1分钟

Netty是高效的网络通信框架,通过Netty可以编写高性能的服务端和客户端程序。

本文目的是详细地解析Netty服务端的重点源码,吸收Netty中优秀的设计思想。

本文的特点是尽量通过流程图的方式表达Netty的原理,取代文字的表达方式,减少阅读成本。


Netty服务端简要的工作流程图


Netty服务端简要的内部结构图


结论:

  1. 每个NioEventLoopGroup对象内部包含多个NioEventLoop对象。
  2. NioEventLoop对象包含Selector和Thread成员。
  3. bossGroup在NioEventLoop对象中的thread线程中注册NioServerSocketChannel对象,接受连接请求,创建NioSocketChannel对象。
  4. bossGroup将创建好的NioSocketChannel对象传给workerGroup,workerGroup在NioEventLoop对象中的thread线程中注册NioSocketChannel对象,处理读写事件。
  5. bossGroup和workerGroup的每个NioEventLoop成员内有一个独立的thread子线程,每个NioEventLoop对象中所有注册的Channel发生的所有事件都在独有的thread子线程中执行。
  6. bossGroup只注册一个NioServerSocketChannel对象,只会使用一个NioEventLoop对象;workerGroup会注册多个NioSocketChannel对象,会使用多个NioEventLoop对象。

Netty服务端详细的工作流程图


由于流程较复杂,详细的Netty服务端流程图在链接中☞ Netty启动流程


Netty关键技术

Netty线程模型

文章链接

Netty监听器原理

文章链接

Netty的Pipeline结构

☞ ChannelPipeline原理