Netty网络编程-模块划分

1、Netty版本

<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-all</artifactId>
  <version>4.1.77.Final</version>
</dependency>

img

2、模块

2.1、Core

提供底层网络通信的通用抽象和实现,包括可扩展的事件模型、通用的通信API和支持零拷贝的ByteBuf等。

common包是Netty的核心基础包,提供丰富的工具类,其他模块都需要依赖该模块。常用的包括:

  1. 通用工具类和自定义并发包。
  2. 通用工具类:包括定时器工具TimerTask、时间轮HashWheelTimer等。
  3. 自定义并发包:增强的FastThreadLocal等。

buffer模块中,Netty自己实现的了一个更为完备的ByteBuf工具类,用作网络通信的数据载体,该类是对Java ByteBuffer的完美替代品,解决了ByteBuffer长度固定造成的内存浪费,更安全地更改了Buffer的容量。同时Netty对ByteBuf进行了很多优化,包括缓存池化、减少数据拷贝的CompositeByteBuf 等

resolver模块,提供一些有关基础设施的解析工具,包括IP Address、Hostname、DNS 等。

2.2、支持的编解码器

codec模块主要负责编解码工作,通过编解码实现原始字节数据与业务实体对象之间的相互转化。该模块包含开箱即用的编码器,包括:HTTP、HTTP2、Redis、XML等。同时该模块提供抽象编码类:ByteToMessageDecoder和ByteToMessageEncoder,通过继承这两个类可以自定义编解码器。

handler模块主要负责数据处理工作,本质上是handler的集合。该模块提供了开箱即用的ChannelHandler实现类,如:日志、IP过滤等,可以自行在pipeline中加入相应的ChannelHandler。

2.3、支持的传输协议

提供网络传输能力的定义和实现方法,支持Socket、Http隧道、虚拟机管道等传输方式。

transport模块是Netty提供数据处理和传输的核心模块。该模块包含很多重要的接口:BootStrap、Channel、ChannelHandler、EventLoop、ChannelPipeLine等。

posted @   往事随雨  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示