Netty基本架构

NIO是New IO,jdk1.4的版本发行的新特性。

IO通道读取流数据,NIO通道读取缓存数据。从流里读取数据储存到缓存数据中,缓存满了后直到读取出部分缓存数据,数据才能继续从流里写入缓存。相比流,缓存的结构可以提高读效率,因为流数据写入到通道就立马读取,在这频繁读写次数中消耗了时间。缓存是一个块数据,块的特点为读写灵活,移动发生读指针和结束读指针,那么读取出的数据就是缓存中这段指针范围指定的数据。缓存的储存数据的特点解决了读写时间的高消耗问题。

 

调取使用NIO十分复杂,计算缓存的读取位置、判断连接状态、解释通道生命周期,都不简单。

Netty框架是常用的NIO框架之一,解决了调用NIO困难的难题。因为框架把NIO的底层逻辑封装在框架的内部,只提供几个方法和接口,就达到了使用NIO接口的效果。

 

Netty框架的组成部分分为三块:EventLoopGroup、Selector、Channel。这三部分清晰地划分了NIO的功能。

EventLoopGroup是线程池,负责执行各种Event事件。顾名思义,EventLoopGroup是线程的调取地,关联了一个EventLoop数组。数组中的每一个EventLoop就等于一个独立线程。

Selector是选择器,它能切换执行不堵塞的通道,而不选择执行正在堵塞的通道。它的功能是灵活地利用线程资源,减少资源的浪费,增加了性能。

Channel是通道,通道中会发生各种事件,例如socket连接,读取数据。

 

posted @   IT知识生产小店铺  阅读(58)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示