1. Netty Programming

1.1 Netty Nio工作原理图

Netty 作为异步事件驱动的网络,高性能之处主要来自于其 I/O 模型和线程处理模型,前者决定如何收发数据,后者决定如何处理数据。

Netty的工作原理图

  1. 服务启动后 ServerChannel 负责监听连接请求,它绑定到 EventLoopGroupEventLoopGroup 包含多个 EventLoop , 每个EventLoop 与 单个线程一一绑定。
  2. ServerChannel 接收到新的连接请求后,会创建 子Channel 并绑定到与之对应的 EventLoopGroup

Server EventLoopGroupChild Event Loop Group 可以是同一个 EventLoopGroup,下图示例中 ServerChild 各自拥有自己的 EventLoopGroup
※ 一个 EventLoop 可以包含多个 ChannelSelector 负责轮询 所有 Channel 判断是否存在就绪操作,如果存在已就绪操作则触发 pipeline 进行处理,之后从 TaskQueue 获取并执行任务。
Netty工作原理

1.2 NioEventLoop和NioEventLoopGroup

通过了解这两个类的类图再结合Netty Reactor的工作流程图可以很好的了解Netty的实现原理。关于Netty的详细介绍不做展开,可参考 参考 部分的文章!
Netty工作原理

参考

这可能是目前最透彻的Netty原理架构解析

相关文章: