08-Netty 高性能架构设计-Netty模型介绍

Netty模型

工作原理示意图 1-简单版

Netty主要是基于主从Reactors多线程模型(如图)做了一定的改进, 其中主从Reactor 多线程模型有多个Reactor

对上图的说明

  1. BossGroup线程维护Selector,只关注Accecpt
  2. 当接收到Accept事件,获取到对应的SocketChannel,封装成NIOScoketChannel并注册到Worker线程(事件循环),并进行维护
  1. 当Worker线程监听到selector中通道发生自己感兴趣的事件后,就进行处理(就由handler),注意handler经加入到通道

工作原理示意图 2-进阶版

工作原理示意图3-详细版

对上图的说明小结

  1. Netty抽象出两组线程池Boss Group 专门负责接收客户端的连接, WorkerGroup 专门负责网路的读写
  2. Boss Group 和 WorkerGroup 类型都是NIOEventLoopGroup
  1. NioEventLoopGroup相当于一个事件循环组, 这个组中含有多个事件循环, 每一个事件循环是NioEventLoop
  2. NioEventLoop表示一个不断循环的执行处理任务的线程, 每个NioEventLoop都有一个Selector, 用于监听绑定在其上的Socket的网络通讯
  1. NioEventLoopGroup 可以有多个线程, 即可以含有多个NIOEventLoop
  2. 每个Boss NioEventLoop 循环执行的步骤有3步
    1. 轮训accept事件
    2. 处理accept事件, 与client建立连接, 生成NioSocketChannel, 并将其注册到某个worker NioEventLoop上的selector
    1. 处理任务队列任务,即runAllTask
  1. 每个Worker NIOEventLoop循环执行的步骤
    1. 轮训read, write事件
    2. 处理IO事件, 即read, write事件, 在NIOSocketChannel处理
    1. 处理任务队列的任务, 即runAllTask
  1. 每个Worker NioEventLoop 处理业务时, 会使用pipeline(管道), pipeline中包含了channel, 即通过pipeline可以获取到对应的通道,通道中维护了很多的处理器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值