Netty主要组件
:
在Netty中有很多重要的组件, 每个组件职业不同, 担负不同的功能。
组件一 NioEventLoop
在它的底层封装了Selector, 实现多路复用, 由唯一绑定的一个线程去进行三大步骤循环操作: 监听事件,处理事件,执行任务。
组件二 NioServerSocketChannel NioSocketChannel
一个是服务端通道, 一个是客户端通道,接收客户端连接和处理数据读写都是通过通道进行的。
组件三 ChannelPipeline
每个Channel都与唯一的一个Pipeline关联. 当Channel读取到数据以后,后续的具体操作都交给管道Pipeline去进行。
组件四 Handler
在ChannelPipeline中可以放入用户自定义的Handler,用于具体的业务处理, 这里面也包括解码器和编码器这两种重要的Handler。
当然以上四个是最重要的组件, 比较重要的组件或类还包括以下一些:
启动类ServerBootstrap
负责底层数据的读写类Unsafe
具体的线程类FastThreadLocalThread
线程池NioEventLoopGroup
存放数据的容器ByteBuf
学习这些组件先不要深入细节, 先有个大概的概念, 每个组件具体做啥, 然后把它们串联起来, 加深对Netty整体架构的理解。
然后再回过来深入到每个组件的细节, 反作用加深理解整个架构.

相关文章:
Netty主要组件
: 在Netty中有很多重要的组件, 每个组件职业不同, 担负不同的功能。 组件一 NioEventLoop 在它的底层封装了Selector, 实现多路复用, 由唯一绑定的一个线程去进行三大步骤循环操作: 监听事件,处理事件,执行任务。 组件二 NioServerSocketChannel NioSocketChannel 一个是服务…...
Linux系统【centos7】常用基础命令教程
今天我来介绍一下Linux系统的基础知识。 首先,我们需要了解Linux是什么。Linux是一种免费且开放源代码的操作系统,它被广泛用于服务器、移动设备和嵌入式系统。 接下来,我们需要了解基本的Linux命令。其中一些基本命令包括: 1.…...
【Redis学习】Redis入门概述
Redis是什么 Redis:REmote Dictionary Server(远程字典服务器) 官网介绍:The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.(被数百万开发人员用作数据库、缓存、流…...
nodejs微服务:Consul集群
Consule集群 1 )概述 Consul是HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置Consul是分布式的、高可用的、可横向扩展的, 完成consul的安装后,必须运行agentagent可以运行为 server模式、client模式, 每个数据中心至少…...
spring事务处理
系列文章目录 Spring中事务的处理相关内容的学习 文章目录系列文章目录前言一、Spring事务简介二、案例:银行账户转账1.题目要求和思路分析2.实现步骤3.实现结构三、spring事务角色四、spring事务相关配置五、案例:转账业务追加日志1.题目要求和思路分析…...
2023 年博客之星的入围规则
目的 感谢各位博主和社区的大力支持,我们的博客之星活动成为了 IT界非常知名的博主荣誉的象征,博主在这个过程中也给大家贡献了很多优质内容。 在过去的几年中,博主们给我们博客之星活动提了很多建议,其中最强烈的一点就是&#…...
【新2023Q2押题JAVA】华为OD机试 - 查找树中的元素 or 查找二叉树节点
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:查找树中的元素 or 查找二叉树…...
MySQL 日志:undo log、redo log、binlog 有什么用?
目录一、bin log1.作用2.刷盘时机3.日志格式二、redo log1.为什么需要redo log2.基本概念3.作用3.刷盘时机三、undo log1.作用四、Mysql的时机顺序五、redo log 与 binlog 的两阶段提交六、总结一、bin log 1.作用 MySQL的bin log日志是用来记录MySQL中增删改时的记录日志。 …...
ETL 与 ELT的关键区别
ETL 和 ELT 之间的主要区别在于数据转换发生的时间和地点 — 这些变化可能看起来很小,但会产生很大的影响! ETL 和 ELT 是数据团队引入、转换并最终向利益干系人公开数据的两种主要方式。它们是与现代云数据仓库和 ETL 工具的开发并行发展的流程。 在任…...
Thinkphp 6.0模版的杂项和表单令牌
本节课我们来学习一下模版的杂项和表单令牌的功能。 一.模版的杂项 1. 有时,我们需要输出类似模版标签或语法的数据,这时会被模版解析; 2. 此时,我们就使用模版的原样输出标签{literal}; {literal} 变量标…...
linux常问
查看当前进程 ps -l 列出与本次登录有关的进程信息; ps -aux 查询内存中进程信息; ps -aux | grep * 查询 *进程的详细信息; top 查看内存中进程的动态信息; kill -9 pid 杀死进程。...
ToBeWritten之物联网MQTT、Z-Wave等协议
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…...
C# 行为型模式之责任链模式
责任链模式:请求从链中的一个对象传递到下一个对象,直到请求被响应为止。通过这种方式在对象之间去除耦合。 用途:请假审批、采购审批等。 案例介绍:以公司采购东西为例子来实现责任链模式。公司规定,采购架构总价在…...
layui实现请求前添加一个加载 loading 的效果,并在请求成功后关闭
1.使用 layui 的 layer 组件来实现请求前添加一个加载 loading 的效果,并在请求成功后关闭。 $("#switch").click(function() {layer.confirm(确认切换至英文环境?, function(index) {var loadingIndex layer.load(1, {shade: [0.1,#fff] //0.1透明度的…...
iostat / sar 命令详解
作用 iostat主要用于监控系统设备的IO负载情况,根据这个可以看出当前系统的写入量和读取量,CPU负载和磁盘负载。 iostat属于sysstat软件包。可以用yum install sysstat 直接安装。 iostat用法 1.用法:iostat [选项] [<时间间隔>] […...
2023-04-06:拥抱Golang,优化FFmpeg音频编码器,探究encode_audio.c的内部结构。
2023-04-06:拥抱Golang,优化FFmpeg音频编码器,探究encode_audio.c的内部结构。 答案2023-04-06: 见moonfdd/ffmpeg-go库。 这段代码是一个示例程序,用于将音频 PCM 数据编码为 MP2 格式的音频文件。下面是代码的详细…...
归排、计排深度理解
归并排序:是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法&#…...
设计原则(单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则)
设计原则单一职责原则(SRP)从三大特性角度看原则:应用的设计模式:开放封闭原则(OCP)从三大特性角度看原则:应用的设计模式:里氏替换原则(LSP)从三大特性角度看原则:应用的设计模式:依赖倒置原则(DIP)从三大特性角度看原则:应用的设计模式&…...
好像模拟了一个引力场
( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 做一个网络让输入只有3个节点,每个训练集里有4张图片,让B的训练集全为0,排列组合A,观察迭代次数平均值的变化。 A-B 迭代次数 0 1 0 2*0*0*7-0*0*0*0 12957.31 0 0 0 2*0*0*7-0*0…...
MySQL优化——Explain分析执行计划详解
文章目录前言一. 查看SQL执行频率二. 定位低效率执行SQL三. explain分析执行计划3.1 id3.2 select_type3.3 table3.4 type3.5 key3.6 rows3.7 extra四. show profile分析SQL前言 在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能…...
Dify工作流架构:声明式编排与可视化执行引擎的技术实现
Dify工作流架构:声明式编排与可视化执行引擎的技术实现 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Dify…...
用华为ENSP模拟器复现智慧小区网络:从VLAN划分到三层架构的保姆级配置教程
华为ENSP模拟器实战:智慧小区网络从零搭建全流程指南 当你第一次拿到智慧小区网络设计方案时,那些抽象的拓扑图和配置参数是否让你望而生畏?作为网络工程师成长路上的必经之路,企业级网络搭建从来不是纸上谈兵的游戏。本文将带你用…...
Nanbeige 4.1-3B专属UI实战:一键部署沉浸式游戏风格聊天应用
Nanbeige 4.1-3B专属UI实战:一键部署沉浸式游戏风格聊天应用 1. 项目概述与核心价值 南北阁(Nanbeige)4.1-3B是一款性能优异的中英双语大语言模型,而今天我们要介绍的是为其量身打造的专属Web交互界面。这个界面最特别之处在于&…...
OWL ADVENTURE助力在线教育:AI自动批改绘图作业实践
OWL ADVENTURE助力在线教育:AI自动批改绘图作业实践 想象一下,一位在线美术老师,面对上百份刚刚提交的手绘作业。他需要一份份打开,仔细查看学生的构图、线条、比例,然后写下针对性的评语。这个过程不仅耗时费力&…...
零基础入门:5分钟学会用Ollama运行Granite-4.0-H-350M文本生成
零基础入门:5分钟学会用Ollama运行Granite-4.0-H-350M文本生成 1. 为什么选择Granite-4.0-H-350M Granite-4.0-H-350M是一个轻量级但功能强大的文本生成模型,特别适合初学者和资源有限的用户。它只有3.5亿参数,却能在普通电脑上流畅运行&am…...
从“三次握手”到文件落地:用Wireshark抓包带你彻底搞懂C++ Socket文件传输全过程
从“三次握手”到文件落地:用Wireshark抓包带你彻底搞懂C Socket文件传输全过程 当你在浏览器下载文件时,是否好奇过数据是如何跨越网络准确无误地到达你的电脑?本文将带你用C实现一个完整的TCP文件传输程序,并通过Wireshark抓包工…...
在六亩半,春天不是日历上的数字,而是泥土间的青草香
当城市里的春天还停留在气温起伏的天气预报里,六亩半手作文创园的春意,早已从土地深处探出头来。那是荠菜嫩芽拱开泥土的力道,是柳条抽出新绿的柔软,是孩子们蹲在田埂上、指尖沾满青草汁液的鲜活记忆。在这里,春天不是…...
云原生实战:如何用GROUP模型提升容器工作负载预测准确率(附避坑指南)
云原生实战:如何用GROUP模型提升容器工作负载预测准确率(附避坑指南) 在云原生架构中,容器资源管理一直是DevOps团队面临的重大挑战。传统单容器预测方法往往忽视了微服务间复杂的协同关系,导致预测误差居高不下。本文…...
从LLaVA到Stable Diffusion:多模态融合选拼接还是交叉注意力?一张图帮你做技术选型
多模态融合技术选型指南:拼接与交叉注意力的深度对比与实践策略 在构建现代多模态AI系统时,工程师们常常面临一个关键决策点:如何有效地融合来自不同模态的信息?想象一下,你正在开发一个智能医疗影像分析系统ÿ…...
3分钟快速上手:免费高效的Elasticsearch可视化工具Elasticvue终极指南
3分钟快速上手:免费高效的Elasticsearch可视化工具Elasticvue终极指南 【免费下载链接】elasticvue Elasticsearch gui for the browser 项目地址: https://gitcode.com/gh_mirrors/el/elasticvue 你是否曾经为复杂的Elasticsearch集群管理而烦恼?…...
