Netty快速入门(四)

Netty核心模块组件梳理

BootStrap和ServerBootStrap

BootStrap的意思是引导,一个Netty应用通常由一个bootStrap开始,主要用于配置整个Netty程序,串联各个组件。Netty中BootStrap是客户端程序引导类,ServerBootStrap是服务器端程序引导类。
常见方法:
在这里插入图片描述

Future和ChannelFuture

Netty中所有的io操作都是异步的,并不能立即知道操作是否执行成功。但是可以通过注册监听等待操作执行完回调通知。具体的实现就是Future和ChannelFuture来实现。
常见方法:
在这里插入图片描述

Channel

1)channel是Netty网络通信的组件,能够用于执行网络IO操作,可以获取当前网络连接的通道状态以及网络连接配置参数
2)channel提供异步的网络IO操作(建立连接/读/写/绑定端口)
3)channel调用立即返回一个ChannelFuture实例,用于注册监听器判断IO操作是否执行成功
4)支持关联IO操作与对应的处理程序
5)不同协议,不同的阻塞类型有不同的Channel类型与之对应
在这里插入图片描述

Selector

Netty是基于Selector对象来实现的IO多路复用,通过Selector可以实现一个线程监听多个Channel事件
当向一个Selector注册Channel后,Selector的内部就可不断的轮询注册的Channel是否有IO事件发生

ChannelHandler

ChannelHandler是一个接口,用于处理IO事件,并将其转发到ChannelPipeline中的下一个处理程序。ChannelHandler没有提供太多方法,使用时我们可以继承它的子类
在这里插入图片描述

Pipeline和ChannePipeline

ChannelPipeline是一个ChannelHandler的一个集合,它负责拦截inbound和outBound的事件和操作,相当于一个责任链模式
在Netty中每个Channel都有一个ChannelPipeline与之对应
在这里插入图片描述
一个channel包含了一个ChannelPipeline,而一个ChannelPipeline又维护了一个由ChannelHandlerContext组成的双向列表,并且每个ChannelHandlerContext中又关联了一个ChannelHandler
入站事件和出战事件会在一个双向链表中,入站事件从链表head到链表tail,出栈事件从链表tail到链表head
常用方法
在这里插入图片描述

ChannelHandlerContext

保存了Channel相关的上下文信息,同时关联了一个ChannelHandler对象
即ChannelHandlerContext中包含一个具体处理事件的channelHandler,也绑定了对应的pipeline以及channel信息,方便对ChannelHandler进行调用
常用方法
在这里插入图片描述

ChannelOption

Netty在创建了Channel实例后通常需要设置ChannelOption参数
在这里插入图片描述

EventLoopGroup和NioEventLoopGroup

EventLoopGroup是一组EventLoop的抽象,每个EventLoop维护了一个Selector
EventLoopGroup提供了一个next接口,可以获取其中一个EventLoop来处理任务
通常一个服务器端需要创建两个EventLoopGroup,一个负责连接请求一个负责读写请求
在这里插入图片描述
常用方法
在这里插入图片描述

Unpooled

Netty提供专门用来操作缓冲区的工具类
常用方法
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值