• netty常用组件


    Netty组件概念明晰

    • Bootstrap

    是netty的主入口类,分为客户端Bootstrap类和服务端ServerBootstrap类两种。

    • EventLoop(Group)

    eventloop可以看成是一个线程,eventLoopGroop可以看成是线程组。

    • Channel

    Channel 是Java NIO 的一个基本构造。目前,可以把Channel 看作是传入(入站)或者传出(出站)数据的载体。因此,它可以被打开或者被关闭,连接或者断开连接。

    channel和EventLoop(Group)

    Channel需要被注册到某个EventLoop上,在Channel整个生命周期内都由这个EventLoop处理IO事件,也就是说一个Channel和一个EventLoop进行了绑定,但是一个EventLoop可以同时被多个Channel绑定。

    ChannelPipeline

    当Channel 被创建时,它将会被自动地分配一个新的ChannelPipeline,每个Channel 都有自己的ChannelPipeline。这项关联是永久性的。在Netty 组件的生命周期中,这是一项固定的操作,不需要开发人员的任何干预。

    入站和出站ChannelHandler 被安装到同一个ChannelPipeline中,ChannelPipeline以双向链表的形式进行维护管理。

    ChannelHandlerContext

    channelHandlerContext相较于channelHandler多了构成ChannelPipeline链表的属性。

    ChannelPipeline以双向链表的形式进行维护管理Handler,hannelHandlerContext 的主要作用就和LinkedList内部的类Node类似,不过ChannelHandlerContext 不仅仅只是个包装类,它还提供了很多的方法,比如让事件从当前ChannelHandler传递给链中的下一个ChannelHandler,还可以被用于获取底层的Channel,还可以用于写出站数据。

  • 相关阅读:
    关于迁移学习的一点理解
    1688关键字搜索工厂数据 API
    JVM Code Cache代码缓存简介
    Redis:java和SpringBoot中使用Redis
    使用pip3离线安装openpyxl
    234. 回文链表
    力扣(203.1)补9.2
    解码2022中国网安强星丨注重攻防实战化验证,长亭以安全原子能力打造体系化安全
    Angular:单向数据流
    LeetCode 周赛 352(2023/07/02)一场关于子数组的专题周赛
  • 原文地址:https://blog.csdn.net/yfyh2021/article/details/126422274