posts

《Netty 高性能网络编程》 · 全书目录与章节索引(50 篇)

《Netty 高性能网络编程》全 50 篇:从 Reactor 到 EventLoop、Pipeline、ByteBuf 与引用计数,再写自定义协议、重连池化、背压、WebSocket、HTTP/2 与 gRPC,最后落到 KQueue/Epoll、泄漏诊断、压测调优与生产网关验收,附完整章节索引与实验口径。

《Netty 高性能网络编程》全 50 篇,是「Java 网络与 Netty」三卷本的第二卷。卷一用 JDK 原生 API 手写了 Selector、拆帧与 HTTP 协议;本卷把这些部件逐一映射到 Netty 4.2 的组件,并用一个可运行的 linkd-v2 工程贯穿始终。

本页是《Netty 高性能网络编程》的全书目录:按章节顺序列出全部 50 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读,或先看目录篇 里的三条学习路径。

全书概览

项目内容
书稿《Netty 高性能网络编程》
篇数50 篇(15 章 45 节 + 序、前言、目录 + 附录 A/B)
领域Netty 4.2、事件循环、编解码、HTTP/2、WebSocket、性能调优
贯穿项目linkd-v2 —— 四模块 Netty 工程,端口 9090/9091/9092/9093
上游项目linkd —— 卷一的 JDK 原生实现,本卷逐项替换为 Netty 组件
阅读方式从目录篇 进入按顺序通读,或按症状跳读
主线版本JDK 25 LTS(Temurin 25.0.5+8)、Netty 4.2.19.Final、Maven 3.9.12
关键依赖netty-all 4.2.19.Final、gRPC-Java 1.76.0、Protobuf 4.33.2
上级专题书稿专题

全书目录

前置

节文章核心内容
—序:为什么在 JDK NIO 之后还要学 Netty三卷本定位、Netty 解决的具体问题、学习预期
—前言:读法、环境与约定版本、机器口径、代码约定与四道门禁
—目录与学习路径三条学习路径、十五章结构、项目状态

第一部分:架构、启动与线程(第 1–3 章)

节文章核心内容
1.11.1 Netty 在网络栈中的位置与 JDK NIO 的分层、模块拆分、生态边界
1.21.2 从 Reactor 到 Netty 组件映射Reactor 角色与 EventLoopGroup、Channel、Pipeline
1.31.3 linkd-v2 工程与依赖四模块 POM、端口分配、共享协议类型
2.12.1 ServerBootstrap 与 Bootstrap服务端/客户端启动、childHandler、bind 与 connect
2.22.2 Channel 生命周期与 ChannelFuture注册、激活、注销、Future 监听器与异常
2.32.3 ChannelOption 与 Socket 参数SO_BACKLOG、TCP_NODELAY、SO_KEEPALIVE 与 allocator
3.13.1 EventLoopGroup 与线程归属boss/worker、线程数、Channel 与 EventLoop 绑定
3.23.2 任务队列与定时任务execute、schedule、GlobalEventExecutor
3.33.3 阻塞隔离与虚拟线程DefaultEventExecutorGroup、阻塞检测、虚拟线程取舍

第二部分:Pipeline 与内存(第 4–6 章)

节文章核心内容
4.14.1 Pipeline 结构与事件传播双向链表、入站/出站、ctx.fire* 与 ctx.write
4.24.2 Handler 生命周期与状态handlerAdded、channelActive、@Sharable 判定
4.34.3 Handler 共享与线程安全有状态 handler、每连接实例、共享陷阱
5.15.1 ByteBuf 索引与视图reader/writer index、slice/duplicate、池化与非池化
5.25.2 引用计数与泄漏retain/release、SimpleChannelInboundHandler、所有权
5.35.3 PooledByteBufAllocator 与 Arenaarena、chunk、page、线程缓存与分配路径
6.16.1 ByteToMessageDecoder累积缓冲、decode 循环、discardReadBytes
6.26.2 长度域、分隔符与定长解码LengthFieldBasedFrameDecoder 五参数与四组配置
6.36.3 编解码错误与异常传播DecodingException、exceptionCaught、关闭策略

第三部分:协议与会话(第 7–9 章)

节文章核心内容
7.17.1 协议帧设计与魔数16 字节头、LKDF 魔数、帧类型与上限
7.27.2 IdleStateHandler 与心跳读/写/全空闲、心跳任务、误判与关闭
7.37.3 握手、认证与连接绑定HELLO/HELLO_ACK、令牌校验、Channel 属性
8.18.1 客户端连接与重连Bootstrap、退避、重连状态机与停止条件
8.28.2 连接池与多路复用池化客户端、借还、健康检查与上限
8.38.3 关闭、半关闭与连接回收closeFuture、shutdownOutput、ChannelGroup
9.19.1 Channel.isWritable 与高低水位WriteBufferWaterMark、可写事件、丢弃策略
9.29.2 写队列与可写事件出站缓冲、channelWritabilityChanged、批量 flush
9.39.3 读背压与 AUTO_READautoRead(false)、手动 read()、与写水位配合

第四部分:协议栈与原生传输(第 10–12 章)

节文章核心内容
10.110.1 WebSocketServerProtocolHandler握手、路径匹配、子协议与 handler 顺序
10.210.2 帧处理、分片与聚合WebSocketFrame、ContinuationWebSocketFrame、WebSocketFrameAggregator
10.310.3 会话表、心跳与广播ChannelGroup、ping/pong、广播与慢客户端
11.111.1 Http2FrameCodec 与多路复用连接级/流级 handler、Http2StreamFrame
11.211.2 HTTP/2 服务端与流生命周期h2c、Http2MultiplexHandler、流关闭与 RST
11.311.3 gRPC on Netty 的结构gRPC 复用 Netty 的层次、线程模型与流控
12.112.1 原生传输与平台差异NIO/Epoll/KQueue、可用性探测与回退
12.212.2 KQueue 在 macOS 的实测KQueue.isAvailable()、绑定输出、原生访问参数
12.312.3 Epoll 在 Linux 的配置Epoll.isAvailable()、边缘触发、SO_REUSEPORT

第五部分:诊断、调优与验收(第 13–15 章)

节文章核心内容
13.113.1 ResourceLeakDetector四档级别、PARANOID 报告、定位与回退
13.213.2 堆外内存与 PoolArena 指标PooledByteBufAllocator.metric()、chunk/arena 观测
13.313.3 线程栈、JFR 与连接诊断jstack、JFR 事件、ss/lsof 与 EventLoop 线程名
14.114.1 参数基线:水位、缓冲区、线程数默认值、基线配置、线程数与分配器选择
14.214.2 压测工具与指标口径ab、自定义协议压测、吞吐/分位/错误率
14.314.3 调优案例与回归症状、假设、变更、回归与防回退
15.115.1 网关路由与转发路由表、Netty 客户端转发、超时与错误映射
15.215.2 限流、超时与降级令牌桶、分层超时、熔断与失败关闭
15.315.3 linkd-v2 验收与复盘验收清单、故障注入、复盘模板

附录

节文章核心内容
A附录 A Netty 常用 API 速查Bootstrap、Channel、ByteBuf、编解码器与 HTTP/2 常用方法
B附录 B Netty 诊断与调优命令线程栈、JFR、泄漏检测、原生传输与压测命令

三卷衔接

实验口径

全部文章 game Indie Java golang Books 客户端开发 Minigame Saas rust Python