Netty NIO 开发指南

20 篇文章 0 订阅
12 篇文章 0 订阅

Netty NIO 开发指南

服务端创建

  • 步骤:

    1. 创建ServerBootstrap实例。该类有着非常多的设置参数,因此采用Builder模式。
    2. 设置并绑定Reactor线程池。其实就是EventLoopGroup,就是一个EventLoop的数组。
    3. 设置并绑定服务端Channel。即NioServerSocketChannel。NioEventLoopGroup实际就是Reactor线程池,负责调度和执行客户端的接入、网络读写事件的处理、用户自定义任务和定时任务的执行。
    4. 链路建立的时候创建并初始化ChannelPipeline。并不是NIO服务端必须的,本质就是一个负责处理网络事件的职责链,负责管理和执行ChannelHandler。
      • 典型网络事件:
      • 链路注册、链路激活、链路断开、接收到请求消息、请求消息接收并处理完毕、发送应答消息、链路发生异常、发生用户自定义事件。
    5. 初始化ChannelPipeline完成之后,添加并设置ChannelHandler。
      • 实用系统ChannelHandler:
        1. 系统编解码框架——ByteToMessageCodec;
        2. 通用基于长度的半包解码器——LengthFieldBasedFrameDecoder;
        3. 码流日志打印Handler——LoggingHandler
        4. SSL安全认证Handler——SslHandler
        5. 链路空闲检测Handler——IdleStateHandler;
        6. 流量整形Handler——ChannelTrafficShapingHandler;
        7. Base64编解码——Base64Decoder和Base64Encoder
    6. 绑定并启动监听端口。
    7. Selector轮询。由Reactor线程NioEventLoop负责调度和执行Selector轮询操作,选择准备就绪的Channel。
    8. 当轮询到准备就绪的Channel之后,就由Reactor线程NioEventLoop执行ChannelPipeline的相应方法,最终调度并执行ChannelHandler。
    9. 执行Netty系统ChannelHandler和用户添加定制的ChannelHandler。
  • backlog指定了内核为此套接口排队的最大连接个数,对于给定的监听套接口,内核要维护两个队列:未链接队列和已连接队列,根据TCP三次握手过程中的三个分节来分隔这两个队列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值