Skip to content

Latest commit

 

History

History
62 lines (46 loc) · 4.18 KB

readme.md

File metadata and controls

62 lines (46 loc) · 4.18 KB

Netty

如果你来到了这里,相信我,大概率你白来了,虽然是Netty的源码分析,但是到目前位置,只是对Netty组件简单介绍,并没有深入分析文章。

如果是想精通Netty不建议大家阅读,浪费时间。如果是小白入门,可以阅读。

写在前面

Netty 是最流程的 Java I/O 框架,主要是性能强悍+良好的 API,支持高并发,良好的 API 减少开发负担。 为了性能,Netty 做了很多的优化。如:为了更好的内存管理(复用),提供了 PooledByteBuf 相关的类,操作非堆内存,减少 GC 等等。

了解 Netty 必须对 TCP/IP 协议有所了解。建议阅读书籍 《TCP/IP 详解 卷 1》,这里是本人的笔记 《TCP/IP 详解 卷 1》 读书笔记

同时建议阅读 《UNIX 网络编程卷 1》 这本书。 理解 Java 的 BIO(Blocking I/O),NIO(on-blocking I/O),(AIO 了解即可)。

Netty 的工程结构

netty-4.1-modules.png

下面对核心(常见)的模块组成简单总结:

模块 描述
netty-codec 编码解码模块,常见的类:ByteToMessageCodecByteToMessageDecoder,MessageToByteEncoder,MessageToMessageCodec
netty-transport 传输模块,常见的类:ChannelBootstrapEventLoop
netty-transport-native 传输模块+native (和平台相关的实现),如:epoll,kqueue
netty-testsuite 测试模块
netty-common 通用的工具类 如:HashedWheelTimer 定时器
netty-buffer 内存分配(包含非堆内存或者说非托管内存),常见的类:Unpooled,PooledByteBuf
netty-handler 常见的 Handler 实现类
netty-resolver DNS 域名解析
netty-example 常见的 Demo
netty-microbench 性能测试
netty-bom Maven 依赖

源码分析

源码版本 4.1.67.Final-SNAPSHOT

git branch 4.1

Links