netty学习笔记

分手后的思念是犯贱 2023-06-24 10:23 63阅读 0赞

socket

channel可理解成简化版的socket
eventLoop用于处理连接的生命周期中所发生的事件【创建channel,就是创建一个连接,将连接注册到eventLoop事件循环组件里面,即将连接交给eventLoop来进行管理】
32

EventLoop

一个EventLoopGroup 包含一个或者多个EventLoop ;

一个EventLoop 在它的生命周期内只和一个Thread 绑定;

所有由EventLoop 处理的lo事件都将在它专有的Thread 上被处理;

一个Channel 在它的生命周期内只注册于一个EventLoop ;

一个EventLoop 可能会被分配给一个或多个Channel

注意,在这种设计中,一个给定Channel 的lO操作都是由相同的Thread 执行的,实际上消除了对于同步的需要。

ChannelFuture 接口

正如我们已经解释过的那样,Netty 中所有的O操作都是异步的。因为一个操作可能不会立即返回,所以我们需要一种用于在之后的某个时间点确定其结果的方法。为此,Netty 提供了ChannelFuture 接口,其addListener ()方法注册了一个ChannelFutureListener ,以便在某个操作完成时(无论是否成功)得到通知。

关于ChannelFuture 的更多讨论可以将ChannelFuture 看作是将来要执行的操作的结果的占位符它究竟什么时候被执行则可能取决于若干的因素,因此不可能准确地预测,但是可以肯定的是它将会被执行,此外,所有属于同一个Channel 的操作都被保证其将以它们被调用的顺序被执行【占位符:它占着一个位置,在将来这个位置一定有人来做。这就是ChannelFuture 】

Inbound and outbound 出站和入站

channelInboundhandler是channelhandler的子类,他是用来接受(装载)入栈事件和数据的

channelPipline是一个容器,他是用来容纳channelhandler链条的

SimpleChannelInboundhandler是用来接受解码消息的‘

引导

引导就是容器,它容纳的是网络的配置信息。如将进程和端口绑定,将进程和进程连接
客户端的bootstrap只有一个eventLoopGroup,服务端有两个

网络传输的的单位是字节

监听器回调机制

发表评论

表情:
评论列表 (有 0 条评论,63人围观)

还没有评论,来说两句吧...

相关阅读

    相关 netty学习笔记

    Netty与原生Nio的区别 原生的nio,只简单封闭了ByteBuffer以及Channel,也就是网络IO操作以及对这些字节的缓存,字节的编码与解码、粘包与拆包

    相关 netty学习笔记

    netty是基于nio(非阻塞io)的高性能网络通信框架 什么是阻塞 ? 一直等待在那里,知道有返回值才会处理 例如: i. Socket socket = serve

    相关 netty学习笔记

    Netty架构,特性、模块组件、线程模型(Boss线程、worker线程)以及源码、 netty架构图: ![70][] netty架构五部分: Extensible