2. Netty 入门 2

1. Netty 核心组件

EventLoop(Group)
Channel
ChannelHandler
ChannelPipeline
ChannelFuture

Channel、EventLoop(Group) 、ChannelFuture、ChannelHandler、ChannelPipeline 再理解:

  1. Channel:相当于 Socket
  2. ChannelFuture:异步通知
  3. EventLoop:控制、多线程处理、并发
  4. ChannelHandler:充当了所有处理入站和出站数据的应用程序逻辑的地方
  5. ChannelPipeline:提供了ChannelHandler 链的容器,并定义了用于在该链上传播入站和出站事件流的API。

2. 流程

在这里插入图片描述
Channel:
在这里插入图片描述
在这里插入图片描述
EventLoop、EventLoopGroup:
在这里插入图片描述
在这里插入图片描述
EventLoop、Channel 关系说明:

  1. 一个 EventLoopGroup 包含一个或者多个 EventLoop
  2. 一个 EventLoop 在它的生命周期内只和一个 Thread 绑定
  3. 所有由 EventLoop 处理的I/O 事件都将在它专有的Thread 上被处理
  4. 一个Channel 在它的生命周期内只注册于一个EventLoop
  5. 一个EventLoop 可能会被分配给一个或多个Channel

ChannelHandler:
在这里插入图片描述
当 ChannelHandler 被添加到 ChannelPipeline 时,它将会被分配一个 ChannelHandlerContext,代表了 ChannelHandler 和ChannelPipeline 之间的绑定。
物理结构上看:
在这里插入图片描述
逻辑视图上看:处理数据时入站、出站 Handler 分开。
在这里插入图片描述
ByteBuf:
网络数据的基本单位总是字节。Java NIO 提供了 ByteBuffer 作为它的字节容器,但是这个类使用起来过于复杂,而且也有些繁琐。Netty 的 ByteBuffer 替代品是 ByteBuf。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值