- 文集信息
- 目录大纲
- 最新文档
- 知识宇宙
文集详情
文集导读
Netty 高性能网络编程实战教程 · 导读
深夜,线上网关集群的告警突然响成一片,接口成功率断崖式下跌。值班工程师抓出线程栈,看到密密麻麻的工作线程全部阻塞在 socket 读操作上——连接还在不断涌进来,线程却已经派光了。这正是本教程要拆解的那类事故:字节从网络涌入服务,你的代码却接不住、加工不动、也送不出去。修复方向也不神秘:让少量线程看管大量连接,让字节沿着有序的工序被加工,彻底告别每条连接都养专职搬运工的旧模式。
Netty 就是把这些思路做成标准件的那座"工厂"。它用 Reactor 线程模型安排人手,用 ChannelPipeline 组织工序,用 ByteBuf 仓储原料,用编解码器完成车床加工,最终把"接收、解码、加工、编码、发送"整条流水线交给开发者按需拼装。Dubbo、gRPC-Java、RocketMQ、Elasticsearch、Spring WebFlux 的底层通信,跑的都是这套流水线。学会它,你得到的不只是能写出一个撑得住流量洪峰的长连接服务,更是一套审视所有高性能网络软件的坐标系。
本教程的主线只有一条:跟着一个字节走完整座车间。字节从网卡进来,先经过传送带与引擎(Reactor、EventLoop),被送上流水线(Channel、Pipeline、Handler),在原料仓暂存(ByteBuf、内存池),送到车床上加工(编解码、粘包切分、协议解析),由调度室安排人手(并发与线程安全),再经过提速改造与仪表盘盯梢(零拷贝、调优、监控),通过质检与应急演练(异常处理、故障防护),最后出厂交付(Spring Boot 整合、网关与 IM 实战、源码与演进)。每一章对应车间的一处工段,章与章之间的顺序,就是字节流动的顺序,也是学习依赖的顺序。
全册知识地图:字节流管道车间

这座车间解决什么问题
网络编程的原始形态,是"一个连接配一个线程"的作坊式生产。连接数一过万,内存和上下文切换就把服务压垮;改用 Java NIO 的 Selector 又会撞上另一些坑:API 反人类、ByteBuffer 不好翻、epoll 空轮询 bug、半包粘包要自己切。Netty 的价值在于把这些脏活累全部收进车间基础设施:主从 Reactor 线程模型负责接单,ChannelPipeline 让你像拼积木一样插入自己的工序,ByteBuf 用引用计数和内存池把原料管理做到极致,内置的编解码器与拆包器让粘包半包不再是事故来源。
九个工段分别教什么
- 第一章 车间全景:为什么需要 Netty,三代 IO 模型差在哪,跑通第一个 Echo 服务。
- 第二章 传送带与引擎:Reactor 三种线程模型,NIO 与 Epoll 传输的取舍。
- 第三章 流水线工位:Channel、EventLoop、ServerBootstrap、Pipeline 的装配与协作。
- 第四章 原料仓:ByteBuf 读写指针、引用计数、内存池分层、泄漏检测。
- 第五章 加工工序:编解码器家族、粘包半包四种解法、自定义协议与 HTTP、WebSocket。
- 第六章 调度室:EventLoop 的串行秩序、Handler 线程安全边界、Future 与 Promise。
- 第七章 提速与仪表盘:零拷贝、连接与心跳管理、吞吐延迟调优、指标与诊断工具。
- 第八章 质检与应急:异常传播路径、连接风暴与资源耗尽防护、可观测与容错。
- 第九章 出厂与演进:Spring Boot 整合、网关与 IM 实战、源码导读与版本演进。
给不同读者的入口建议
刚接触网络编程的读者,从第一章的 Echo 车间开始动手,别跳过第二章的线程模型——它是后面所有章节的地基。有 Netty 使用经验、想排查线上问题的读者,可以直接从第七章的仪表盘与第八章的应急段切入,再回头补第四章的内存管理与第六章的并发边界。准备面试或深挖实现的同学,第四、五、六章加上第九章的源码导读,覆盖了大多数高频追问。
全册代码基于 Netty 4.x 与 JDK 8 以上环境,每段示例都可直接运行。带上你的终端,我们进车间。
目录大纲
最新文档
知识宇宙
正在加载知识图谱...