Netty的组件与设计

180 阅读1分钟

Netty的组件与设计

  1. Channel---Socket

    1. 基本的构造是Socket
  2. EventLoop---控制流,多线程处理,并发

    1. 定义了Netty的核心抽象,用于处理连接生命周期中发生的事件
    2. 一个EventLoopGroup可以有多个EvnetLoop
    3. 一个EventLoop在它的生命周期中只和一个Thread绑定
    4. 所有由EventLoop处理的I/O事件都将在它专有的Thread上处理
    5. 一个Channel在它的生命周期中只注册于一个EventLoop
    6. 一个EventLoop可能被分配一个或多个Channel
  3. ChannelFuture---异步通知

    1. 一个操作可能不会立即返回,所以我们需要一种用于在之后的某个时间点确定其结果的方法,ChannelFuture的addListener()方法注册了一个ChannelFutureListener。以便在某个操作完成时得到通知。
  4. ChannelHandler

    1. 是处理入站和出站数据的容器
  5. ChannelPipeline

    1. 提供了Channelhandler链的容器。当channel被创建时,它会被自动分配到它专属的ChannelPipeline

    2. ChannelHandler安装到CHannnelPipeline的过程如下

      1. 一个ChannnelInitializer注册到了ServerBootstrap上
      2. 当ChannnelInitializer的initChannel方法被调用时,ChannnelInitializer将在ChannelPipeline安装一组自定义的ChannelHandler
      3. ChannnelInitializer将它自己从ChannelPipeline中移除