首页 > 其他分享 >netty常用类

netty常用类

时间:2023-10-19 21:00:32浏览次数:32  
标签:netty 常用 ChannelHandler 处理 EventLoop EventLoopGroup Channel

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

标签:netty,常用,ChannelHandler,处理,EventLoop,EventLoopGroup,Channel
From: https://www.cnblogs.com/expiator/p/17775630.html

相关文章

  • JAVA项目常用异常处理汇总
    1.空指针异常(java.lang.nullpointerexception) 发生该情况一般是字符串变量未初始化,数组未初始化,类对象未初始化等。还有一种情况是当该对象为空时你并没有判断是否为空值,这个错误我在之前的web习题上犯过,因此为了避免这种情况,除了检查是否初始化之外,如有必要则要加上判断是......
  • JAVA项目中的常用的异常处理情况
    #Java项目中常用的异常处理情况Java是一种强类型、面向对象的编程语言,它具有丰富的异常处理机制。异常处理是编写健壮、可靠和可维护的Java代码的关键组成部分。在Java项目中,处理异常的方式通常包括:##1.try-catch-finally块try-catch-finally是Java中最常见的异常处理机......
  • pom.xml常用配置(六)
    SpringCloudSpringCloudDependencies<properties><spring-cloud.version>Hoxton.SR3</spring-cloud.version></properties><dependencyManagement><dependencies><!--添加springcloud家族依赖-->&......
  • iptables常用命令
    iptables是用于配置Linux系统中的防火墙规则的命令行工具。其命令格式和常用参数的意思如下:iptables[选项]<链名><规则规范>常用选项:-A:添加规则到指定链的末尾。-D:从指定链中删除规则。-I:插入规则到指定链的开头。-L:列出指定链的规则。-F:清除指定链中的所有规则。-P:......
  • 深入理解 Netty FastThreadLocal
    作者:vivo互联网服务器团队-JiangZhu本文以线上诡异问题为切入点,通过对比JDKThreadLocal和NettyFastThreadLocal实现逻辑以及优缺点,并深入解读源码,由浅入深理解NettyFastThreadLocal。一、前言最近在学习Netty相关的知识,在看到NettyFastThreadLocal章节中,回想起一起线......
  • 记录最近学习到的一些windows常用命令
    1、ping命令可以用来测试网络是否联通,使用步骤如下:1.1、在电脑上面同时按住win+R,输入cmd,回车 1.2、在窗口里面输入一行格式为“ping+空格+IP地址(或者网站地址)”的命令,如“pingwww.baidu.com” 如上图可见,本台计算机可以与百度通信2、cd命令cd命令可以更改命令提......
  • Node.js中常用的设计模式有哪些?
    本文由葡萄城技术团队首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。设计模式简介设计模式是由经验丰富的程序员在日积月累中抽象出的用以解决通用问题的可复用解决方案,它提供了标准化的代码设计方案提升开发体验。Node.js作......
  • 23.10.18(常用Java异常处理情况整合)
    在JAVA项目中,异常处理是一项非常重要的任务。合理处理异常能够提高程序的稳定性和可靠性,保证程序的正常运行。下面是关于JAVA项目中常用的异常处理情况的总结:1.空指针异常(NullPointerException):在使用一个空对象的成员变量或方法时会抛出该异常。可以通过判断对象是否为空来避免......
  • C语言-常用函数
    C语言-常用函数strcat_s函数功能:strcat_s函数与strcat函数一样,主要用于字符串拼接。依赖:头文件string.h主要语法:errno_tstrcat_s(char*strDestination,size_tnumberOfElements,constchar*strSource);描述:用于对字符串进行拼接,将两个字符串连接再一起参数:strDe......
  • 常用JS加密/解密类型以及案例
    简介这里给大家汇总常用不常用的JS加密案例,免得大家用的时候到处去找例子。正题对称加密:替代字符表示法:使用Base64或类似的编码对数据进行简单的转换,不过这并不是真正的加密,而只是一种表示形式的转换。<!DOCTYPEhtml><html><body><h2>Base64编码示例</h2><p>原始文本:Hello......