码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Netty常用类与接口


    netty架构图

    在这里插入图片描述

    ServerBootstrap 、 Bootstrap

    ServerBootstrap :服务器的引导类,可以绑定服务器和端口,配置 Channel、ChannelHandler等。

    Bootstrap:客户端的引导类。可以开启客户端,连接服务端的端口,配置 Channel、ChannelHandler等。

    EventLoopGroup

    EventLoopGroup 用于处理 基于 Channel 的 NIO Selector ,处理各种网络 IO 事件。

    EventLoopGroup 底层是个 Executor, 可以执行线程。

    EventLoopGroup 常见的实现类有 NioEventLoopGroup。

    Netty使用 主从 Reactor 多线程模式,会有多个 EventLoopGroup,包括 bossGroup和 workerGroup 。

    bossGroup是 主 Reactor,bossGroup 用于连接请求。

    workerGroup是 从Reactor,workerGroup 用于处理业务。

    TaskQueue

    Netty 的每一个 NioEventLoop 中都有一个 TaskQueue,用于异步地处理监听到的 IO 事件。

    EventLoop

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

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

    一个 EventLoop 可以处理多个 Channel。

    Channel

    Channel 对应 Java 的网络编程中的 Socket。

    Channel 可以处理 所有的网络 I/O 操作(包括 bind()、connect()、read()和 write())。

    ChannelHandler

    ChannelHandler,用于处理 Channel,实现对接收的数据的处理,实现业务逻辑。

    ChannelHandler,它充当了所有处理入站和出站数据的应用程序逻辑的容器。

    ChannelHandlerContext

    能让 ChannelHandler 跟 所属的ChannelPipeline以及其他的ChannelHandler沟通。

    ChannelPipeline

    ChannelPipeline,基于责任链模式,可以添加多个 ChannelHandler。

    ChannelFuture

    在Netty 中,所有的 网络IO 操作都是异步的。

    Channel 可以处理 所有的网络 I/O 操作, 而 Channel 的结果,通过 ChannelFuture 接收。

    Netty 提供了ChannelFuture 接口,其 addListener()方法注册了一个 ChannelFutureListener,以便在某个操作完成时(无论是否成功)得到通知。

    参考资料:

    《netty实战》
    https://mp.weixin.qq.com/s?__biz=MzI5MTU1MzM3MQ%3D%3D&chksm=ec0fb874db783162d60a288a1b4e4ef008852d773693a77bfc58608fae380fd0a14a40e96195&idx=1&mid=2247487808&scene=21&sn=043e5e674b798d0f02d13639cba547b6#wechat_redirect

  • 相关阅读:
    2024深圳杯数学建模竞赛A题(东三省数学建模竞赛A题):建立火箭残骸音爆多源定位模型
    AndroidManifest.xml文件的重要信息
    软件项目估算精准,6大注意事项
    【腾讯云云上实验室-向量数据库】探索腾讯云向量数据库:全方位管理与高效利用多维向量数据的引领者
    基于AERMOD模型在大气环境影响评价中的实践
    Java使用Redis实现分页功能
    Vue 新手期练手出现问题记录与解决方案——Vue练手项目‘小问题’
    关于事务的一点思考
    前端笔记:Create React App 初始化项目的几个关键文件解读
    湖北绝缘监测仪矿业煤炭石油金矿玉矿铁矿铜矿矿井钢厂
  • 原文地址:https://blog.csdn.net/sinat_32502451/article/details/133934402
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号