Netty 核心模块概述

2.6 Netty核心模块概述

2.6.1 Bootstrap / ServerBootstrap
  • Bootstrap意为引导,主要作用是配置整个Netty程序。

  • 常用方法

    • public ServerBootstrap group(EventLoopGroup parentGroup, EventLoopGroup childGroup) : 用于服务端设置两个EventLoop
    • public ServerBootstrap group(EventLoopGroup group) : 客户端设置一个EventLoop
    • channel() : 设置服务器端通道实现
    • option() : 给 ServerChannel 添加配置
    • childOption() : 给接收到的通道添加配置
    • childHandler():设置业务处理类
2.6.2 Future / ChannelFuture
  • 异步操作监听
  • 常用方法:
    • Channel channel() : 返回当前正在进行IO的通道
    • ChannFuture.sync() : 等待异步操作执行完毕
2.6.3 Channel
  • Netty 的网络通信组件,用户执行网络的IO操作
  • 调用时立即返回一个ChannelFuture实例
  • 不同协议,不同阻类型的连接都有不同的Channel对应
    • NioSocketChannel:异步客户端TCP Socket连接
    • NioServerSocketChannel:异步服务端TCP Socket连接
    • NioDatagramChannel:异步UDP连接
    • NioSctpChannel:异步sctp连接
    • NioSctpServerChannel:异步sctp服务器连接
2.6.4 Selector
  • 监听多个连接的Channel事件
  • Channel注册到Selector中
2.6.5 ChannelHandler
  • 拦截/处理IO事件,并将其转发到对应的ChannelPipeline继续处理
  • 实现类
    • ChannelInboundHandler : 处理入站IO事件
    • ChannelOutboundHandler : 处理出站IO事件
  • 适配器
    • ChannelInboundHandlerAdapter : 处理入站IO事件
    • ChannelOutboundHandlerAdapter : 处理出站IO事件
    • ChannelDuplexHandler : 处理入/出站IO事件
2.6.6 编码器和Handler调用机制
  • ChannelHandler充当了处理入站出站数据的应用程序逻辑的容器。

    • e.g. 实现ChannelInboundHandler接口(或者ChannelInboundHandlerAdapter),就可以接收入站。实现出站接口
  • ChannelPupeline提供了ChannelHandler链的容器,以服务器端视角为例

    • 入站:事件方向 客户端 -> 服务器端
    • 出站:事件方向 服务器端 -> 客户端
2.6.7 Pipeline/ChannelPipeline
  • ChannelPipeline是Handler的一个集合(双向链表),负责处理inbound和outbound的事件

  • 每个Channel与ChannelPipeline是一对一的关系
    在这里插入图片描述

2.6.8 ChannelHandlerContext
  • 包含Channel所有上下文信息,关联一个ChannelHandler
  • 常用方法
    • close() : 关闭通道
    • flush() : 刷新
    • writeAndFlush(Object msg) : 数据写道下一个ChannelHandler
2.6.9 ChannelOption
  • ChannelOption.SO_BACKLOG: 用来初始化可连接队列大小
  • ChannelOption.SO_KEEPALIVE: 一直保持连接活动状态
2.6.10 EventLoop组件
  • EventLoopGroup是为了更好利用多核CPU资源
  • 一个EventLoop维护一个Selector实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值